【问题标题】:Callback Editable PHP Not Working回调可编辑 PHP 不工作
【发布时间】:2015-01-10 18:39:21
【问题描述】:

我创建了一个表格,我可以在其中编辑 td 并且效果很好。我编辑了产品名称,它只是在我的网页上成功更改,但它没有更新到数据库中。

我的数据库是这样的:

这是td内部的编辑代码。

$results = $mysqli->query("SELECT * FROM productList");
while($row = $results->fetch_assoc()) {
    <td> <span class="edit" id="'.$row['ID'].'"> '.$row['name'].' </span> </td>
}

为了可编辑,我必须使用 AJAX 来回调该值。像这样的:

jQuery(document).ready(function() {  
    $.fn.editable.defaults.mode = 'popup';
    $('.edit').editable();     
    $(document).on('click','.editable-submit',function(){
        var x = $(this).closest('td').children('span').attr('id');
        var y = $('.input-sm').val();
        var z = $(this).closest('td').children('span');
        $.ajax({
            url: "edit.php?id="+x+"&data="+y,
            type: 'GET',
            success: function(s){
                if(s == 'status'){
                $(z).html(y);}
                if(s == 'error') {
                alert('Error Processing your Request!');}
            },
            error: function(e){
                alert('Error Processing your Request!!');
            }
        });
    });
});

在 AJAX 之后,我必须调用 url 到 edit.phpedit.php 的代码如下:

$mysqli = new mysqli('localhost','root','root','database_name');
if ($mysqli->connect_error) {
    die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}

if($_GET['id'] and $_GET['name'])
{
    $id = $_GET['id'];
    $name = $_GET['name'];
    if ($mysqli->query("UPDATE productList SET name='$name' WHERE ID='$id'"));
    $mysqli->close();
    echo 'success';
}

我尝试在 phpmyadmin 中手动更新,它在那里运行良好。但不是在这里。它现在应该可以工作了。我错过了什么吗?

【问题讨论】:

  • 在尝试更新行时检查mysqli是否抛出错误。
  • 你能告诉我如何抛出,因为我正在使用 AJAX,我对 AJAX 太陌生了。我试过在edit.php中抛出一个错误,但它没有显示任何错误:/

标签: php mysql ajax


【解决方案1】:

需要更新您的代码,如下所示。如果文件没问题,可以直接调用edit.php?id=..&amp;name=..调试。

jQuery:

$.ajax({
            url: "edit.php?id="+x+"&name="+y,
            type: 'GET',
            success: function(s){
                alert(s) ;
                if(s == 'status'){
                   $(z).html(y);
                }                    
            },
            error: function(e){
                alert(e.status);
            }
        });

PHP:

if($_GET['id'] && $_GET['name']) // this is not SQL! so and will not work!
{
    $id = $_GET['id'];
    $name = $_GET['name'];
    if ($result = $mysqli->query("UPDATE productList SET name='".$name."' WHERE ID='". $id."'")){

       $mysqli->close(); 
       echo 'success';
    }else{
        echo mysqli->error;
    }


}

READ Some MYSQLI DOC

【讨论】:

  • 您好,谢谢您的提示,但出现了一些错误,例如Error Processing Your Request!! 我无法理解。
  • $.ajax({url: "edit-productList.php?id="+x+"&amp;data="+y,type: 'GET' 我确认页面是正确的。但是对于IDData 应该在AJAX 中是这样的吧? @Riad
  • 您使用的是$_GET['name'],但为什么要传递 &data=.. ?查看更新的答案
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2013-12-17
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 2018-05-08
相关资源
最近更新 更多