我试图用从数据库中提取的行填充我的表单元素。我试图使用ajax发送单击按钮时要获取的行的ID。

我正在尝试使用ajax。我已经在php文件中成功检索了我想要的行,但是无法将数据发送回请求页面。

我的表格中有每行的编辑和删除按钮。

while ($row = mysqli_fetch_array($result)) {
    echo '<tr style="margin:10px;">';
    echo "<td>".$row['title']."</td>";
    echo "<td>".$row['uname']."<td>";
    echo '<td><button class="btn btn-warning" onClick="editBtnClicked('.$row['id'].')">Edit</button><td>';
    echo '<td><button class="btn btn-danger" onClick="deleteBtnClicked('.$row['id'].')">Delete</button><td>';
    echo "</tr>";
}

我的脚本看起来像这样:

function editBtnClicked(id) {
    $.ajax({
        type: 'post',
        url: 'edit.php',
        data: { edit_id: id },
        success: function (data) {
            // ...
        }
    })
}

和我的edit.php文件:

$id= $_POST['edit_id'];

$stmt= "SELECT * FROM blog WHERE id=".$id;

$result= $conn->query($stmt);

$rows = $result->fetch_assoc();

我想将$rows['name']$rows['body']发送到包含该表的页面,并填充一个包含两个文本区域的表单。

分析解答

edit.php文件的末尾,添加此行

echo json_encode($rows);

像这样修改你的function: (我假设你的名字和body textareas分别有ids nameTextAreabodyTextArea。)

function editBtnClicked(id) {
    $.ajax({
        type: 'post',
        url: 'edit.php',
        data: { edit_id: id },
        success: function (data) {
            console.log(data);
            $('#nameTextArea').val(data.name);
            $('#bodyTextArea').val(data.body);
        }
    })
}