2011-12-11 51 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

非常感謝您的幫助,我終於明白了! :) –