0

jQuery UI の Sortable 機能を使用して、小さなドラッグ アンド ドロップ アプリを作成しています。jQuery は正常に動作しますが、すべての行の配列を順番にエンコードしようとすると、反対側の 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");
    });

});

上部のフォームで「REORDER」ボタンをクリックすると、次のように送信さ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);
    }

?>

orderupdate.php送信すると、クエリを実行しないPHPスクリプトにリダイレクトされ、ループが配列foreachを読み取れないことがわかりました。$post_idsNULLは私のvar_dump(). また、 JS スクリプトの は、関数またはイベント リスナーのサブミットのalertいずれでも起動しません。ready()PHPスクリプトにリダイレクトするだけです。

何かが故障していませんか?何が間違っている可能性がありますか?前もって感謝します。

4

2 に答える 2