我正在使用jQuery UI的可排序功能製作一個小的拖放應用程序。 jQuery工作正常,但是當我嘗試按順序對所有行的數組進行編碼時,另一側的PHP腳本將數組讀取爲NULL
,我找不到原因。這裏的一切都在以使他們出現在我的第一個腳本:JSON編碼數組在PHP中爲NULL
的HTML
<form method="post" id="reorder" action="orderupdate.php">
<input type="hidden" id="post_ids" name="post_ids">
<button type="submit">REORDER</button>
</form>
<ul id="photo-selector">
<li id="img1"><img src="images/img1.jpg"></li>
<li id="img2"><img src="images/img2.jpg"></li>
<li id="img3"><img src="images/img3.jpg"></li>
<li id="img4"><img src="images/img4.jpg"></li>
<li id="img5"><img src="images/img5.jpg"></li>
<li id="img6"><img src="images/img6.jpg"></li>
</ul>
的JS
$(document).ready(function(){
var formOrder = document.getElementById('reorder');
formOrder.addEventListener('submit', function(){
var post_ids_field= document.getElementById('post_ids');
var ul_id = document.getElementById("photo-selector");
var post_ids = ul_id.getElementsByTagName("li");
post_ids_field.value = JSON.stringify(post_ids);
alert("check");
});
});
當表格點擊「重塑」按鈕往上頂將其發送到orderupdate.php
如下
<?php
$post_ids = json_decode($_POST['post_ids']);
var_dump($post_ids);
require("opendbas3.php");
foreach ($post_ids as $x => $value) {
$query = "UPDATE dav_posts SET p_order='$x' WHERE post_id='$value'";
$result = mysql_query($query, $link);
}
?>
現在當我提交時,它redirec對我的PHP腳本orderupdate.php
它不執行查詢,我發現foreach
循環無法讀取$post_ids
陣列。我只得到NULL
與我的var_dump()
。另外,JS腳本中的alert
不會在ready()
函數或事件偵聽器的提交中觸發。它只是重定向到PHP腳本。
是不是有什麼問題?什麼可能是錯的?提前致謝。