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 数据库的主要内容,如果未能解决你的问题,请参考以下文章