Jqgrid我无法将更改更新到数据库中

时间:2011-12-11 06:10:19

标签: php jquery mysql ajax jqgrid

我的jqgrid加载了完美的数据,但是当我想对其进行更改时,我的数据库上没有任何反应。 我不知道究竟什么时候发生“输入密钥”事件来保存行,所以我不知道在哪里放这个代码:

jQuery("#lista").saveRow(id, function(){alert("changes saved")}, 'guardar_lista.php');

我已经看到了这个例子:JQgrid checkbox onclick update database 但是我很想知道如何使用ajax发送信息(抱歉,我是新手)。

你能给我一个如何用ajax发送信息的代码示例吗? 这是我的Editurl代码:

    <?

    $dbhost="localhost";
    $dbuser="root";
    $dbpassword="";
    $database="db_proyecto";


    $db = mysql_connect($dbhost, $dbuser, $dbpassword) or die("Connection Error: " . mysql_error()); 
    mysql_select_db($database, $db);


    if($_POST['oper']=='edit'){
        $invid=$_POST['id'];
        $tax=$_POST['tax'];
        $note=$_POST['note'];
        $total=$_POST['total']; 
        $SQL="update invheader set note='"+$note+"' where invid="+$invid;
        mysql_query($SQL,$db);
}

提前谢谢@ruffin! (抱歉延误,我很忙)

1 个答案:

答案 0 :(得分:0)

好吧,你将不得不发布更多代码供我们确认。您的网格应该具有editurl的值,该页面将处理您更新的数据(iirc)。为了清楚起见,那个url 是你插入mysql_query jive的地方。

请注意,您要么使用网格中的新值来使用$ _GET或$ _POST集合中的jive,如果它是一个新行,则为id列的“_empty”(因为它没有填充;这个是一个新的一行)。 (是的,我意识到你正在更新,但万一你加入的时间很快。)

例如......(“FORM”每次表示它来自$ _POST数组)

FORM: PREFIX :: REV 
FORM: FNAME :: Joe
FORM: MNAME :: Frazier
FORM: LNAME :: Test
FORM: SUFFIX :: suffix
FORM: oper :: add
FORM: id :: _empty

要在此处查看的体面代码: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing

更多关于_empty和表单编辑的信息: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing

所以我们需要你的editurl,我们需要知道“更新数据的PHP代码”是在那个页面中,我们可能应该看到你在页面上已经有了完整的网格,给了一个超级精彩回答。 ; ^)

您可能还应该在editurl上编写一个虚拟页面,它遍历$ _GET和$ _POST集合中的所有值,并将它们写入文件,以便您可以检查网格发送给您的内容 - 以及你得到任何东西。另外,请请PUH-lease使用mysql_real_escape_string()周围的$ name和至少一个int check for $ id!