【问题标题】:update MySQL table does not work with jquery更新 MySQL 表不适用于 jquery
【发布时间】:2014-01-01 11:27:54
【问题描述】:

已解决 我在页面上重复了元素 ID。

我的update 表不工作。我有从 jqGrid 行中选择数据的对话框, 这是代码。

    function editDialog() {
        //cek baris terpilih
        var selr = jQuery('#list1').jqGrid('getGridParam','selrow');
        if(!selr){
            alert("Harap pilih baris yang ingin di edit")
        return}
        var namapelanggan = jQuery('#list1').jqGrid('getCell', selr, 'namapelanggan');
        var alamatpelanggan = jQuery('#list1').jqGrid('getCell', selr, 'alamat');
        var telppelanggan = jQuery('#list1').jqGrid('getCell', selr, 'telepon');
    $("input#namapelanggan").val(namapelanggan);
    $("input#alamatpelanggan").val(alamatpelanggan);
    $("input#telppelanggan").val(telppelanggan);
    $( "#editDialog" ).dialog("open");
}

下面是jquery代码

$(document).ready(function () {
    $dialog = $("#editDialog")
        .dialog({
            autoOpen: false,
            position: 'center',
            hide: 'explode',
            modal: true,
            width: 'auto',
            height: 'auto',
            closeOnEscape: true,
            buttons: [{ text: "Simpan", click: function (){
                var
                xnama = $("input#namapelanggan").val();
                xalamat = $("input#alamatpelanggan").val();
                xtelp = $("input#telppelanggan").val();
            $.ajax({
            type: "POST",
            url: "/sis/modul/mod_pelanggan/upelanggan.php",
            data: {"nama":xnama,
            "alamat":xalamat,
            "telp":xtelp,
            success: function(result){
            jQuery("#list1").trigger("reloadGrid");
            },
            error: function(xhr, ajaxOptions, thrownError){
            alert('Terjadi kesalahan, Error Kode: ' + xhr.status);}
                            }
            );
        $( this ).dialog( "close" );
        }},
        { text: "Batal", click: function () { $(this).dialog("close"); } }]
    });
});

这里是upelanggan.php,用于查询更新表。

<?PHP
include "../../../config/koneksi.php";
if ($_SERVER['REQUEST_METHOD'] == 'POST') { //halaman ini harus dipanggil melalui post
      $nama = $_POST["nama"];
      $alamat = $_POST["alamat"];
      $telp = $_POST["telp"];
      $sql="UPDATE tpelanggan SET namapelanggan='".$nama."' ,alamat='".$alamat."',telepon='".$telp."' WHERE idpelanggan=1 ";
      $q = mysql_query($sql);
}
?>

用户单击所选行中的编辑,然后打开对话框。用户更改输入值 id namapelanggan 并单击按钮“Simpan”以保存更改。但它不起作用,表格没有更新。

【问题讨论】:

  • 当你说它不起作用时:是有错误,还是只是数据库没有更新?
  • 表格没有更新,没有错误。
  • 您能否发布$sql 的值:这将有助于确定问题出在您的SQL 上,还是PHP 的早期问题。
  • 但它不起作用”不是可接受的错误描述。

标签: mysql jqgrid


【解决方案1】:

首先检查 POST 请求是否正在运行。

您可以通过“控制台”或“网络”选项卡上的 FireBug 制作它

您也可以通过网络服务器上的访问日志进行检查。

我还在你的代码中发现了 $.ajax 运行中的错误:

  1. 奇怪的"nopolisi":xnopolisi,因为未定义变量 xnopolisi。

  2. 数据字段不存在右括号}

检查 Javascript 控制台是否有错误并修复它。

【讨论】:

  • 很抱歉变量 nopolisi 它没有被使用。查找我的更新查询。
  • 是的,它没有被使用,但它没有被定义,你可以有 Javascript 错误和 ajax 请求只是不发送到 PHP 脚本。它点头发送,因为您的脚本中有其他错误
  • 为了清楚起见,我从我的原始代码中复制了一些代码并在此处发布。我想复制它结束“telp”:xtelp,不包括“nopolisi:xnopolisi。没有Javascript错误,我从控制台检查了firebug的日志并查找POST数据。POST数据是发送数据从我选择的网格行中,因此未发送更改的数据并且未更新表。
  • 奇怪。您的代码不是很正确。但是如果在 POST 中所有字段都根据需要填写,那么只需检查 mysql_query 状态:echo mysql_error()。并在 firebug 控制台中查看输出
  • 我的代码是正确的,萤火虫没有显示错误。查询正在更新旧数据而不是编辑数据。如果我可以发布图像会更清楚。
猜你喜欢
  • 2010-12-15
  • 1970-01-01
  • 2012-07-04
  • 2013-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多