![](/img/trans.png)
[英]Pass data from JQuery to database via Javascript/AJAX/JSON/PHP
[英]how to delete data from database in php,ajax,javascript(no jquery)
我正在尝试从数据库中删除数据,但是当我单击删除按钮时,它会删除第一行而不是我要单击的位置。 我的PHP代码:
<?php
$connect = mysqli_connect("localhost","root","","abu");
if($connect){
$showdata = mysqli_query($connect,"SELECT * FROM dealers");
if(mysqli_num_rows($showdata)>0){
$i = 1;
while($rows = mysqli_fetch_assoc($showdata)){
echo "<tr>";
echo "<td>".$i."</td>";
echo "<td>".$rows["dealer_name"]."</td>";
echo "<td><button onclick='deleteproduct()' class='delete'>Delete</button><input type='hidden' id='productid' vlaue='".$rows["id"]."'></td>";
echo "</tr>";
$i++;
}
}else {
echo "<center><i>No Dealers to show</i></center>";
}
}
?>
这是我的ajax代码:
function deleteproduct(){
if(window.XMLHttpRequest){
http = new XMLHttpRequest();
}else {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
http.onreadystatechange = function(){
if(http.readyState == 4 && http.status == 200){
document.getElementById("alerts").innerHTML = http.responseText;
}
}
var delid = document.getElementById("productid").value;
var file = "assets/php/addproduct_deletedata.php";
var senddata = "productid="+delid;
http.open("POST",file,true);
http.setRequestHeader("content-type","application/x-www-form-urlencoded");
http.send(senddata);
}
我希望当我单击删除按钮时,它会删除我没有单击其他行的行。
输入type =' hidden'id =' productid'vlaue ='“。$ rows [” id“]。”'
2.您正在遍历结果集并打印出ID为“ productid”的输入字段。
在您的代码中, 每个列都有相同的 ID。 这就是您的JavaScript无法正常运行的原因。 ID必须是唯一的 。
您需要发送值(产品ID)作为功能参数。 像这样做:
<input type="hidden" onclick="deleteproduct(this.value)" value="$yourRowId"/>
要么
<input type="hidden" onclick="deleteproduct($yourRowId)" />
这就是您如何在JS中检索值的方法:
<script type="text/javascript">
function deleteproduct(id)
{
alert(id); // your product ID
}
</script>
首先,您不能在同一页面上分配相同的ID超过一个元素 。
浏览器不会介意,但是会使HTML无效。 您可以为此使用class属性。
您可以在此处在线验证HTML
echo "<td><button onclick='deleteproduct()' class='delete'>Delete</button><input type='hidden' id='productid' vlaue='".$rows["id"]."'></td>";
根据您的需求,您可以使用锚标记而不是使用带有隐藏输入字段的表单来减小DOM大小,并在单击时调用该函数,然后将productId作为参数传递给该函数。
这是代码:
<?php
$connect = mysqli_connect("localhost","root","","abu");
if($connect){
$showdata = mysqli_query($connect,"SELECT * FROM dealers");
if(mysqli_num_rows($showdata)>0){
$i = 1;
while($rows = mysqli_fetch_assoc($showdata)){
echo "<tr id='row-".$rows["id"]."'>";
echo "<td>".$i."</td>";
echo "<td>".$rows["dealer_name"]."</td>";
echo "<td><a href='#' onclick='return deleteproduct(".$rows["id"].")'>Delete</a></td>";
echo "</tr>";
$i++;
}
}else {
echo "<center><i>No Dealers to show</i></center>";
}
}
?>
JavaScript的:
function deleteproduct( delId ){
var tableRowId = 'row-'+delId;
// you got delId and tableRowId to remove the table row
// do ajax stuff here...
return false;
}
让我知道进展如何。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.