-2

jQueryと を使用して動的レコードを削除できるようにするプロジェクトに取り組んでいPHPます。ユーザーがレコードを動的に追加するオプションが既にありますが、削除オプションが機能するだけです。この関数を開発しようとしている間、 を に設定しDeleteましたINSERT。私が問題を抱えているのは、非表示フィールドからdelete-class.php(一番下のスクリプト) に値を取得することです。以下にコードを投稿しました:

<form id="frmDelete" method="post" action="delete-class.php">
            <input id="btnSubmit" type="submit"/> 

            <ul id="class">
                <?php
//this is being loaded from a different page and is here just to reference the fields
                 while ($row = mysql_fetch_array($result)) {
                 echo '<li id="liClass" class="ui-widget"><img src="trash-can-icon.png" id='.$row["id_distance_class"].' class="delete"/>' . $row["class_section"] . '<input type="hidden" name="hdid" id="hdid" value="'.$row["id_distance_class"].'"/></li>';
                ?>
            </ul>
        </form>
<script>
        $(function() {
            $(".delete").click(function() {
                $('#load').fadeIn();
                var commentContainer = $(this).parent();
                var id = $(this).attr("id");
                var string = id ;
                // console.log(id);

                $.ajax({
                    type: "POST",
                    url: "delete-class.php",
                    data: $(this).serialize(),
                    cache: false,
                    success: function(){
                        commentContainer.slideUp('slow', function() {$(this).remove();});
                        $('#load').fadeOut();
                    }
                });
                return false;
            });
        });
    </script>
//this is the delete-class.php
$results = mysql_query("INSERT INTO distance_class (class_section) VALUES ( '".$_POST['hdid']."' ) ");
4

1 に答える 1

1

問題は、AJAX リクエストでこの情報を渡していないことです。あなたは通り過ぎています

data: $(this).serialize()

...おそらく思考thisはフォームを指しています。そうではありません。このコードはボタンのイベント ハンドラー コールバックで実行されているため、クリックされた削除ボタンを指します。

フォームを対象とするように上記を変更します。

于 2012-08-20T14:14:21.367 に答える