我已經按照幾乎所有指南和教程,我可以把我的手,但我看不出什麼導致這個問題:阿賈克斯發送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