我已经按照几乎所有指南和教程,我可以把我的手,但我看不出什么导致这个问题:阿贾克斯发送GET而不是POST
我使用下面的代码:
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 =斯卡+宾达+商Telia + LITEN + 18 + M%E5N。 & Submit36 = Spara
这就是我的AJAX脚本所在的文件的名称。它看起来在做什么(对我来说)是它发送GET到当前页面而不是POST到“updaterowajax .PHP”。
我在这里做错了什么? 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();'它实际上是在工作。三次尝试。然后我改变了一些代码,并停止工作。我已经恢复到旧的工作状态,但唉,不,它不工作了:PI认为我错过了一个“或”或什么的,但到目前为止我还没有找到缺失的链接如果我找到它,我会报告回来,但是,上面说的方法似乎有效。
编辑2:好吧,得到了“正常发送的防止表单”工作(不是很难感谢你),但萤火虫告诉我这个ID并没有被定义,我觉得这很奇怪,因为我没有改变任何东西,从它的工作到输入到数据库中,但只是要清楚:我错过了什么?上面的代码实际上应该定义值的ID,对吗?特别是因为它似乎没有问题,当它作为一个GET发送定义它时。
您是否试过使用'$ .post()'而不是'$ .ajax'? – 2012-02-17 15:41:23
糟糕,updaterowajax.php的代码没有显示出来。 – wecsam 2012-02-17 15:41:54
您的代码是脆弱的[SQL注入](http://stackoverflow.com/a/601524/212159) – Flukey 2012-02-17 15:45:28