我正在做一個「我必須發貨的物品清單」,每件物品和一個按鈕「標記爲已發貨」。如何防止PHP在isset(POST ['submit'])之後動態更新項目列表?
我的問題是,當我按標籤發貨時,一個項目消失,但它不是我點擊的。我必須刷新頁面才能看到一個邏輯結果。我想阻止PHP更新這個列表,因爲我想用jQuery來處理這個列表。另外,我想知道如何更新$ numItemHave2Ship而不必刷新頁面(或者用jQuery來做更好嗎?)。
我該怎麼做?非常感謝。
這裏是我的代碼是如何工作的:
首先,我身上的所有物品與MYSQL:
$query=mysql_query("SELECT * FROM items WHERE seller='$username' AND shipped!='1'");
$numItemHave2Ship=mysql_num_rows($query);
echo "You have to ship ".$numItemHave2Ship." items:<p>";
然後,對於每一個項目,我有:
<input type='hidden' name='item' value='".$row['item']."'>
<input type='submit' class='shipped_button' value='Mark as shipped'>
那麼很明顯,這按鈕觸發mysql查詢:
$query=mysql_query("UPDATE items SET shipped='1' WHERE item='$item'
AND seller='$username'");
編輯:我還沒有jQuery代碼。我的整個代碼是在PHP和HTML。
嗨Stefan,非常感謝您的詳細解答。更改isset(POST)的順序解決了問題的第一部分。我會用你的建議jQuery。再次感謝 – alexx0186 2012-03-26 16:45:53
嗨,我只是想知道如果使用jQuery的post()或ajax()帶來一些安全或可靠性問題?非常感謝,Regards – alexx0186 2012-03-26 17:05:21
高保真jquery ajax安全性,不確定我自己,但請參閱http://stackoverflow.com/questions/6418620/jquery-ajax-and-ssl - 特別是在接受的答案中的意見,關於可能性致電https頁面。可靠性:如果你沒有javascript,如果你完全依賴jQuery,它會失敗 - 但是你不必只依賴它,並且如果javascript失敗,可以正常提交表單。不過,我認爲你可以依靠js,因爲這似乎是一個管理頁面,你可以要求這樣的用戶總是在瀏覽器中啓用javascript。 – Stefan 2012-03-26 17:17:58