2011-12-11 52 views
0

我的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! (对不起,我很忙)

+0

你的第一行'if($ _ POST ['oper'] ='edit')'实际上将'edit'分配给'$ _POST ['oper']'并且总是返回'true' –

+0

谢谢!我修好了,但仍然没有任何反应。 –

回答

0

那么,你将不得不张贴更多的代码让我们知道肯定。你的网格应该有一个editurl的值,这是处理你更新数据的页面(iirc)。只是要清楚,那个URL是你插入你的mysql_query jive的地方。

请注意,如果jive是来自网格的新值,将使用jive进入$ _GET或$ _POST集合,如果它是一个新行(id列)为“_empty”(因为它没有被填充;这是一个新的行)。 (是的,我知道你要更新,但以防万一您添加很快。)

如......(“形式”每次意味着它从$ _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代码”是在该页面中,我们可能应该看到网页上的内容完整,以提供SUPER WONDERFUL答案。 ; ^)

你也许应该在你的editurl上写一个虚拟页面,它遍历你的$ _GET和$ _POST集合中的所有值,并将它们写入一个文件,以便你可以检查网格发送给你的东西 - 而且你什么都得到了。此外,请请PUH租约使用mysql_real_escape_string()围绕$名称和至少一个int ID检查$ ID!

+0

非常感谢您的帮助,我终于明白了! :) –