我正在尝试使用jquery和ajax删除页面上的一行和数据库中的记录,但它不适用于我。页面上的行已成功删除,但未调用php文件。我只是在php中有一个echo语句来进行错误检查,并且没有打印到屏幕上。
js file
function deleteLine(a,estimateNum,rowNum){
var $rowcount = $("#desc_table tr").length;
if($rowcount <= 2){
alert("Cannot remove all the description lines.");
return false;
}
else{
if (confirm("Are you sure you want to delete?")) {
$.ajax({
type: "POST",
url: "delete_desc_record.php",
data: { estimate_num: estimateNum, row_num: rowNum },
cache: false,
success: function(){
a.closest('tr').remove();
}
});
}
else{
return false;
}
}
delete_desc_record.php
<?php
include 'connect.php';
include 'set_variables.php';
$estimate_num = isset($_POST['estimate_num']) ? (int) $_post['estimate_num'] : 0;
$row_num = isset($_POST['row_num']) ? (int) $_post['row_num'] : 0;
echo 'in delete php file '. $estimate_num .' '. $row_num;
的index.php
if(!empty($DESC)){
foreach ($DESC as $i => $b) {
?>
<tr>
<td><input name="desc[]" type="text" value="<?php echo $DESC[$i]; ?>"></td>
<td> <input name="desc_hr[]" type="text" value="<?php echo $DESC_hr[$i]; ?>"</td>
<td> <input name="desc_rt[]" type="text" value="<?php echo $DESC_rt[$i]; ?>" </td>
<td><input name="desc_amt[]" type="text" value="<?php echo $DESC_amt[$i]; ?>"></td>
<td><input type="button" value="X" name="delete" class="btnDelete" onclick="deleteLine(this,<?php echo $estimate_num .','. $i; ?>)"></td>
</tr>
<?php
}
}
答案 0 :(得分:3)
你的php期待estimate_num
和row_num
,但你正试图给它
data: estimateNum, rowNum,
在任何情况下都是无效的语法。将该行更改为:
data: { estimate_num: estimateNum, row_num: rowNum },
答案 1 :(得分:0)
开发人员工具中是否存在控制台错误?
因此,您应该阅读准备好的语句以防止Sql注入,并且您的DELETE语句不正确。删除星号。
<强>更新强> 只是检查你的SQL查询,看不到在哪里设置$ cust_id?
也许检查一下你的包含文件,它们可能会破坏整个脚本。如果它们看起来很好,那么只需在文件顶部写一个echo语句,刷新页面,你在屏幕上打印了什么吗?如果是,则向下移动回显线并重复刷新页面的步骤,直到您不再获得回显文本。
如果您有PHP错误,那么您应该看到错误,请确保在php.ini文件中将display_errors设置为1.