【问题标题】:Submit data to single row of a mysql DB through a PHP foreach-looped button通过 PHP foreach 循环按钮将数据提交到 mysql 数据库的单行
【发布时间】:2019-11-27 21:25:03
【问题描述】:

我通过使用 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),因此其值为yn 来定义账单是有效还是无效。

默认情况下,每行名为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

但正如我上面提到的,我对如何检查单击了哪个特定按钮然后传递该信息有点无能为力。

提前感谢您的帮助。

【问题讨论】:

    标签: php html mysql ajax


    【解决方案1】:

    在这种情况下,由于您计划有多个按钮,请确保每个按钮都有两个 HTML 属性:

    • data-row-id="&lt;ID of the row&gt;"
    • 特定类,如 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']."");
    

    【讨论】:

      【解决方案2】:

      您可以使用 get 请求传递数据。喜欢:

      <script>
         $('#submit').click(function() {
            $.ajax({
               url: 'connect.php?ifvalid=y',
               type: 'GET',
               data: null,
               success: function(msg) {
                  alert('Success ');
               }
            });
         });
      </script>
      

      在您的 php 文件中,您可以使用 $_REQUEST['ifvalid'] 获取它,然后您可以有条件地在数据库中进行更改。

      【讨论】:

        猜你喜欢
        • 2015-11-30
        • 1970-01-01
        • 2013-03-02
        • 2015-11-30
        • 2019-10-23
        • 1970-01-01
        • 2018-03-11
        • 2014-05-25
        • 2021-06-29
        相关资源
        最近更新 更多