PHP:具有不同名称的多个按钮以使用 AJAX 更新 MySQL 数据库

Posted

技术标签:

【中文标题】PHP:具有不同名称的多个按钮以使用 AJAX 更新 MySQL 数据库【英文标题】:PHP: multiple button with different name to update MySQL database with AJAX 【发布时间】:2021-03-07 00:08:39 【问题描述】:

我有一个问题,我有多个使用 while 生成的按钮,但名称不同 (button[$nostation])。

现在,我想用相同的 id ($nostation) 更新 mysql 数据库(表:smt,列:no)。

如何为此生成 AJAX 函数? 这是我的代码:

<?php
$query1 = mysqli_query($connect,"SELECT * FROM smt WHERE no <= 15");
while ( $data=mysqli_fetch_array($query1))
    $nostation = $data['no'];
    $namastation = $data['name'];
    echo "
    <div class='col-xs-2-2'>
        <form action='coba.php' method='post'>
        <button name='button[$nostation]' value='2' style='background-color:#02780d; width:140px; height:75px; margin : 2px; border-radius:10%;'>
        <center>
        <b style='font-size:15px; color: #fff; font-family:Calibri;'>$namastation</b>
        </center>
        </button>
        </form>
    </div>
";?>

这是我使用 PHP 更新数据库的代码:

<?php
include 'connect.php';
$array=$_POST['button'];
foreach ($array as $nostation => $value) 
    $updch=mysqli_query($connect,"UPDATE smt SET status='$value' WHERE no='$nostation'");
?>

如何在不刷新页面的情况下使用 AJAX 进行更新?

【问题讨论】:

您真正需要什么?您的代码对 SQL 注入开放 @aku tok 你到底想给我们看什么图片?? @zimorok 如何在不刷新页面的情况下使用 ajax 更新 mysql 中的数据.. 给我们看图片?? 如果你有很多按钮,那就有点棘手了。除非,显示整组按钮的当前页面设置为一个唯一 ID。有关详细信息,请参阅@KUMAR 答案 【参考方案1】:

查看部分:-

<?php
$query1 = mysqli_query($connect,"SELECT * FROM smt WHERE no <= 15");
while ( $data=mysqli_fetch_array($query1))
    $nostation = $data['no'];
    $namastation = $data['name'];
    
?>
    
    <div class='col-xs-2-2'>
        <form method='post'>
          <input type="hidden" value="<?php echo $nostation;?>" id="name_<?=$nostation;?>" name="name">
         <button type="submit" id="button_<?=$nostation;?>" data-id="<?=$nostation;?>">SAVE</button>
        <center>
        <b style='font-size:15px; color: #fff; font-family:Calibri;'>$namastation</b>
        </center>
        </button>
        </form>
    </div>
   <?php  ?>
   

jQuery / AJAX 部分:-

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script>
    $(document).ready(function()           //when DOM is Ready.
    $("[id^=button_]").click(function ()   //when Button is Clicked.
        var id = $(this).data('id');       // Get the ID of the button that was clicked on.
        var name = $("#name_"+id).val();   // value from `input` which is connected the clicked button.
       // console.log(id+"---"+name);
        $.ajax(                          // AJAX request
            url: 'update.php',            // send request to server.
            method: 'POST',               // method is POST.
            data:                        //data which is sent to server.      
                id: id,name: name
            ,
            success: function (data)     //success function called.
            alert(data);                  // alert success data.
             
        );
    );
);

</script>

update.php:-

在 php 端我们通过以下方式捕获它:-

echo $id = $_POST['id'];
echo $name = $_POST['name'];
//use update query.

注意:-更多关于click()

的信息

https://api.jquery.com/click

【讨论】:

谢谢,这就是工作,我从早上到现在都在尝试.. 这就是工作,非常感谢.. 对不起,我的英语不好和我的解释不好。 :) @aku tok hey ,如果这个答案解决了您的问题,那么请将绿色勾号标记为已接受的答案并为未来的读者投票。

以上是关于PHP:具有不同名称的多个按钮以使用 AJAX 更新 MySQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章

使用 Ajax、PHP、MYSQL 更新表单

如何在laravel 5.2中控制多个ajax请求

XCode:以编程方式添加具有特定名称和动画的多个按钮

php函数以获取数据,将具有通用字段名称的多个表连接起来并显示输出[重复]

在循环中创建多个具有不同名称的对象以存储在数组列表中

如何在具有 Ajax 的单个表单中使用多个提交按钮 [关闭]