使用ajax和php更新数据库中的数据仅适用于第一个回显数据

时间:2017-12-02 15:34:26

标签: php jquery ajax

我正在尝试按下按钮更新数据库。这些是使用php从数据库中获取和回显的,我想用ajax

删除它们

下面是php代码

<?php
        $sql = $db->prepare("SELECT * FROM questions");
        $result = $sql->execute();

        while ($row = $result->fetchArray(SQLITE3_ASSOC))
        {
            $quiz_id = $row['quiz_id'];
            $question = $row['question'];
            $answer = $row['answer'];

            echo '<form action="updatequestion.php" method="post" enctype="multipart/form-data">
            <tr>
            <td><input style="width: 50%" type="text" name="cid" id="cid" value="'.$quiz_id.'"></td>
            <td><input type="text" name="question" id="question" value="'.$question.'"></td>
            <td><input type="text" name="answer" id="answer" value="'.$answer.'"></td>
            <td><input type="submit" name="qupdate" id="qupdate" value="Update"></td>
            </tr>
            </form>';

        }
        ?>

ajax

$(document).ready(function() {
$('#qupdate').click(function() {
    question = $('#question').val();
    answer = $('#answer').val();
    id = $('#cid').val();

    $.ajax({
        type: "POST",
        url: "updatequestion.php",
        data: "cid="+id+"&question="+question+"&answer="+answer,
        success: function(html){
            if(html = "true")
            {
                $('#qupdate').css("opacity", "1");
            }
            else
            {
                alert("not successful");
            }
        },
        beforeSend: function(){
            $('#qupdate').css("opacity", "0.5");
        }
    });
    return false;
});
});

我想使用ajax代码更新特定问题,但只有第一个echo数据与ajax一起使用。

1 个答案:

答案 0 :(得分:0)

您有几个带有提交元素的表单,它们具有相同的ID。每个页面只能有一个具有该ID的元素。它是唯一的标识符。您可以在多个元素上使用相同的类。 因此,为qupdate元素添加类submit,并将$('#qupdate')选择器更改为$('.qupdate')。如果您需要提交的ID属性,可以通过添加一些额外的唯一编号使其唯一,例如id="qupdate-'.$quiz_id.'"