JQuery删除了页面行,但Ajax没有删除db记录

时间:2017-11-09 20:59:16

标签: php jquery ajax

我正在尝试使用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
  }
}

2 个答案:

答案 0 :(得分:3)

你的php期待estimate_numrow_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.