php - 通过 PHP foreach 循环按钮将数据提交到 mysql 数据库的单行
问题描述
我通过使用 php 的foreach
构造循环在网站上显示 mysql 表,例如:
<?php foreach($bills as $bills): ?>
<tr>
<td><?= $bills->column1; ?></td>
<td><?= $bills->valid; ?></td>
<td><?= $button; ?></td>
</tr>
<?php endforeach; ?>
名为 的列valid
设置为varchar(1)
,因此它的值是y
或n
来定义账单是有效还是无效。
默认情况下,命名列的每一行都valid
设置为n
- 通过单击一行的按钮,我想将valid
特定行的值设置为,y
但我对如何以正确的方式传递数据有点迷茫。
该$button
变量包含以下 html 代码:
<form id="submit">
<button type="submit">Valid</button>
</form>
单击该按钮运行下面的 ajax 脚本:
<script>
$('#submit').click(function() {
$.ajax({
url: 'connect.php',
type: 'POST',
data: null,
success: function(msg) {
alert('Success ');
}
});
});
</script>
connect.php 运行以下代码:
<?php include('../config.php') ?>
<?php
$query = $pdo->prepare("UPDATE bills SET valid='y'");
$query->execute();
?>
我的猜测是我必须通过 ajax 的data
选项发送一个变量,然后在 mysql 查询中调用它,比如
UPDATE bills SET valid='y' WHERE variablefromajax = id
但正如我上面提到的,我对如何检查单击了哪个特定按钮然后传递该信息有点无能为力。
提前感谢您的帮助。
解决方案
在这种情况下,由于您计划有多个按钮,请确保每个按钮都有两个 HTML 属性:
data-row-id="<ID of the row>"
- 特定类,如 class="row-submitter"
然后,稍微改变你的逻辑来跟踪类点击,而不是 ID:
$('.row-submitter').click(function() {
$.ajax({
url: 'connect.php',
type: 'POST',
data: null,
success: function(msg) {
alert('Success ');
}
});
});
由于按钮的属性上还有 ID 数据,您现在可以说:
$('.row-submitter').click(function() {
$.ajax({
url: 'connect.php',
type: 'POST',
data: "id="+$(this).data('row-id')+'&value=newvalue',
success: function(msg) {
alert('Success ');
}
});
});
并像使用它们一样
$query = $pdo->prepare("UPDATE bills SET valid='".$_POST['value']."' where id=".$_POST['id']."");
推荐阅读
- c# - Blazor EditForm 提交两次而不是一次
- c# - 发生索引超出范围异常
- reactjs - reactjs 正确使用函数和钩子 - 我收到错误
- mysql - 检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'identified by 'wordpress#demo'' 附近使用正确的语法
- javascript - TypeError:_this.props.loginState 不是函数
- python - 根据分箱输入计算百分位数
- android - 如何使用集合更新 Firebase Firestore 文档中的字段
- python - 查找属于列但不属于高阶列的对数
- internationalization - 如何将 pg_search_scope 与 Mobility 一起使用来翻译属性?
- python - 使用 Sprite 组时图像未在 Pygame 上显示