gpt4 book ai didi

php - Ajax 发送 GET 而不是 POST

转载 作者:可可西里 更新时间:2023-11-01 08:21:08 26 4
gpt4 key购买 nike

我几乎遵循了所有我能掌握的指南和教程,但我就是看不出是什么导致了这个问题:

我使用以下代码:

        function updaterow(){
$.ajax({
url: 'updaterowajax.php',
type:'POST',
data: 'ID=' + ID + '&SupStatus=' + SupStatus +'&$OrderOther=' + OrderOther,
success: function(result){
console.log(result);
}
});
}

将表单内容发布到 php 页面。但出于某种原因,它似乎没有将其作为帖子发送。尤其是它不会将其发送到正确的页面。

我最终得到的是地址栏中的这个:

orderlist.php?ID=36&SupStatus=2&OrderOther=Ska+binda+Telia+Liten+18+m%E5n.&Submit36=Spara

这是我的 AJAX 脚本所在的文件的名称。(对我而言)它似乎在向当前页面发送 GET 而不是向“updaterowajax.php”发送 POST。

我是不是做错了什么? GET 中的所有信息都是正确的,但未传递。

代码或我的服务器设置有什么问题吗?默认的 Apache、MySQL 和我有 jQuery 1.7.1

应该发布的表单:

        while ($row = mysql_fetch_array($query)) {
echo "<tr><form id='".$row['ID']."'>
<td class='idcell'><input type='text' name='ID' readonly='readonly' value='".$row['ID']."' /></td>
<td>".$row['ArtName']."</td>
<td>".$row['ArtNumber']."</td>
<td><a href='/singlepost.php?ID=".$row['ID']."' title='Skriv ut ".$row['CustName']."'>".$row['CustName']."</a></td>
<td>".$row['CustContact']."</td>
<td>
<select name='SupStatus'>
<option value='".$row['SupStatus']."'>".$row['SupRealStatus']."</option>
<option value='01'>Mottagen</option>
<option value='02'>Lagd i korg</option>
<option value='03'>Beställd</option>
<option value='04'>Ankommen</option>
<option value='05'>Slutförd</option>
<option value='06'>Nekad</option>
</select>
<td>".$row['SupRealName']."</td>
<td>".$row['Date']."</td>
<td><textarea name='OrderOther' cols='40' rows='3'>".$row['OrderOther']."</textarea><input type='submit' value='Spara' name='Submit".$row['ID']."' onClick='updaterow()' /></td></form></tr>";}

和 updaterowajax.php

<?php

$ID = $_POST['ID'];
$OrderOther = $_POST['OrderOther'];
$SupStatus = $_POST['SupStatus'];

mysql_connect ("localhost", "root", "bilradio388") or die ('Kan inte ansluta till databasen för att: ' . mysql_error());
mysql_select_db ("bil_best");

mysql_query("UPDATE BestTable SET OrderOther = '$OrderOther' WHERE ID = '$ID'");
mysql_query("UPDATE BestTable SET SupStatus = '$SupStatus' WHERE ID = '$ID'");

echo "Dra på trissor"

?>

就是这样!

编辑:正如我在后面的帖子中提到的,我设法让它工作了一段时间。我使用了建议的方法:onClick='return updaterow();'它确实有效。为三试。然后我更改了一些代码,它停止工作了。我已经恢复到原来的工作状态,但是,唉,不,它不再工作了 :P 我以为我错过了 ' 或 "或 ; 或其他什么,但到目前为止我还没有找到丢失的链接。如果我找到它,我会报告。但是,上述方法似乎有效。

编辑 2:好吧,让“阻止表单正常发送”起作用(多亏了你,没那么难)但是 Firebug 告诉我没有定义 ID。我觉得这很奇怪,因为从它开始工作到输入数据库我都没有改变任何东西。但要明确一点:我错过了什么吗?上面的代码其实应该定义了ID的值吧?特别是当它作为 GET 发送时,代码似乎没有问题定义它。

最佳答案

问题是因为您是通过单击提交按钮调用您的 updaterow() 函数,因此正在提交表单,因为它通常会以及 AJAX 提交。您需要将输入类型更改为 button

return false;event.preventDefault() 添加到您的函数中将不起作用,因为它只会返回仅适用于按钮上的事件,不是表单提交。

另一方面,最好通过 javascript 或 jQuery 附加您的事件,而不是使用 onclick HTML 属性。

关于php - Ajax 发送 GET 而不是 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9331153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com