在ajax插入数据库时出错

Error in ajax insert database

本文关键字:出错 数据库 插入 ajax      更新时间:2023-09-26

在每一行中,我想添加一个可编辑的td来插入"mavandon"到DATABASE dsdonhang。我在http://phppot.com/php/php-mysql-inline-editing-using-jquery-ajax/上读到这篇文章,但它不起作用:(

<script src="../lib/jquery-3.1.0.min.js"></script>   
<script>
$(document).ready(function(){        
    function saveToDatabase(editableObj,column,idd) {
        $.ajax({
            url: "saveedit.php",
            type: "POST",
data:'column='+$(this).column+'&editval='+$(this).editableObj.innerHTML+'&idd='+$(this).idd,
            success: function(data){
                $(editableObj).css("background","#FDFDFD");
                //alert ("hello");
            }
        error: function() {}    
       });
    }
});        
</script>
<?php $query = mysqli_query($conn,"SELECT * FROM dsdonhang");            
    while($row=mysqli_fetch_assoc($query)) {$data[] = $row;}
    foreach($data as $k=>$v) {
      ?>
        <tr>
          <td><?php $madon = $data[$k]["idd"];echo $k+1; ?></td>
          <td><?php echo $data[$k]["ngaydat"]; ?></td>
          <td><?php echo $data[$k]["hoten"]; ?></td>
          <td><?php echo $data[$k]["diachi"]; ?></td>
          <td><?php echo $data[$k]["sdt1"]; ?></td>
          <td><?php echo $data[$k]["donhang"]; ?></td>
          <td><?php echo $data[$k]["tongtien"]; ?>.000VN&#272;</td>
          <td><?php echo $data[$k]["nguoinhan"]; ?></td>
          <td contenteditable="true" onchange="saveToDatabase(this,'mavandon','<?php echo $madon; ?>')"><?php echo $data[$k]["mavandon"]; ?></td>
          <td><a href="donhang.php?id=<?php echo $data[$k]["idd"]; ?>&tc=<?php echo $data[$k]["sothamchieu"]; ?>">Xem</a></td>
        </tr>
<?php
  }            
?>

saveedit.php

<?php
require_once("../lib/connection.php");
mysqli_query($conn,"UPDATE dsdonhang set " . $_POST["column"] . " = '".$_POST["editval"]."' WHERE  idd='".$_POST["idd"]."'");
?>

帮忙吗?由于

onblur代替onchange

<td contenteditable="true" onblur="saveToDatabase(this,'mavandon','<?php echo $madon; ?>')" onClick="showEdit(this);"><?php echo $data[$k]["mavandon"]; ?></td>

在ajax调用中传递参数时输入错误/错误。修改如下

<>之前将其添加到ajax调用中。+ idd idd =而不是这个' idd = ' +(这).idd美元

确保您的事件正在被调用。(你也可以检查firebug。)将参数传递为
{列:$(这).column editval:美元(这).editableObj.innerHTML idd: $(这).idd}

试试这个:

<script>
$(document).ready(function(){        
function saveToDatabase(editableObj,column,idd) {
     var data = {'column':$(this).column,'editval':$(editableObj).text(),'idd':$(this).idd };
    $.ajax({
        url: "saveedit.php",
        type: "POST",
        contentType: "application/json; charset=utf-8",
        datatType: "json",
        data:JSON.stringify(data),
        success: function(data){
            $(editableObj).css("background","#FDFDFD");
            console.log("received data=>"+data);
            alert ("hello");
        }
    error: function(err) {
       console.log("error=>"+err); //print error if exist
    }    
   });
}
});        
</script>