Php 通过多种形式循环
我正在将sql数据提取到另一个用于站点的php表中。对于表中的每一行,我都有一个按钮来删除或编辑该特定行。“编辑”按钮工作正常,但“删除”按钮出现问题。到目前为止,“删除”按钮仅删除表的第一行,而不删除已选择删除的行 以下是表格的示例:Php 通过多种形式循环,php,jquery,mysql,sql,ajax,Php,Jquery,Mysql,Sql,Ajax,我正在将sql数据提取到另一个用于站点的php表中。对于表中的每一行,我都有一个按钮来删除或编辑该特定行。“编辑”按钮工作正常,但“删除”按钮出现问题。到目前为止,“删除”按钮仅删除表的第一行,而不删除已选择删除的行 以下是表格的示例: while($row = mysqli_fetch_array($result)){ <tr> <td>'.($row['some_data']).'</td> <td> <f
while($row = mysqli_fetch_array($result)){
<tr>
<td>'.($row['some_data']).'</td>
<td>
<form action="meeting_update_milestone.php" method="POST">
<input type="hidden" name="mile_id" value="'.$row['id'].'" />
<input type="submit" value="EDIT" />
</form>
</td>
<td>
<form id="meeting_delete_item">
<input type="hidden" name="mile_id" value="'.$row['id'].'" />
<input type="button" onclick="delete_meeting_item()" value="DELETE" />
</form>
</td>
</tr>';
}
正如你所知道的,我在各行中循环创建具有相同id的多个表单。我认为这就是问题所在?如果是这样,我如何通过保持相同的格式来修复它。我相信表单必须有一个唯一的名称,但我不确定如何在ajax数据字符串中实现它。在循环之外,您可以保留一个计数器:
$x=0
,并在生成表单时使用它:
。在循环结束时,增加下一次迭代的计数器+$x
。在javascript中,您可能会根据按下的按钮检索id
示例表单:
<form id="myForm1">
<button>Click me!</button>
</form>
<form id="myForm2">
<button>Click me!</button>
</form>
$('form button').click(function(e) {
var $form = $(this).closest('form');
console.log($form.attr('id'));
return false; //stop form submission
});
此外,内联js(比如html中的onclick)从来都不是好的实践。相反,按照我的示例代码中的示例,用javascript绑定click函数。有关此主题的更多信息,请阅读以下结果:您的问题就在这里
$('#meeting_delete_item').serialize()
您应该使用其他内容来确定当前行是否正确
用于删除的HTML表单部分
<form id="meeting_delete_item">
<input type="button" onclick="delete_meeting_item('.$row['id'].')" value="DELETE" />
</form>
我不能评论php代码的有效性,但正如您所说,
id
值必须是唯一的。在这种情况下,我不相信ID对你想要实现的目标有多大影响
删除id
和内联onclick
事件:
while($row = mysqli_fetch_array($result)){
<tr>
<td>'.($row['some_data']).'</td>
<td>
<form action="meeting_update_milestone.php" method="POST">
<input type="hidden" name="mile_id" value="'.$row['id'].'" />
<input type="submit" value="EDIT" />
</form>
</td>
<td>
<form>
<input type="hidden" name="mile_id" value="'.$row['id'].'" />
<input type="button" class="delete" value="DELETE" />
</form>
</td>
</tr>';
}
单击delete按钮,我们得到最近的表单并序列化该表单的数据
function delete_meeting_item(deleteId){
var x = confirm("Are you sure you want to permanetly delete this item?");
if (x){
$.ajax({
type: "POST",
url: "meeting_delete_item.php",
data: {mile_id: deleteId},
cache: false,
success: function(result){
alert(result);
}
})//end ajax
}
else{
return false;
}
}
while($row = mysqli_fetch_array($result)){
<tr>
<td>'.($row['some_data']).'</td>
<td>
<form action="meeting_update_milestone.php" method="POST">
<input type="hidden" name="mile_id" value="'.$row['id'].'" />
<input type="submit" value="EDIT" />
</form>
</td>
<td>
<form>
<input type="hidden" name="mile_id" value="'.$row['id'].'" />
<input type="button" class="delete" value="DELETE" />
</form>
</td>
</tr>';
}
$(document).ready(function(){
$('.delete').click(function(){
var x = confirm("Are you sure you want to permanetly delete this item?");
if (x){
$.ajax({
type: "POST",
url: "meeting_delete_item.php",
data: $(this).closest(form).serialize(),
cache: false,
success: function(result){
alert(result);
}
})//end ajax
}
else{
return false;
}
}
}