我试图用从数据库中提取的行填充我的表单元素。我试图使用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 nameTextArea
和bodyTextArea
。)
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);
}
})
}