2011-12-02 54 views
1

我是一个jQuery/jqGrid的新手...如何添加/编辑/删除MySQL数据库与jqGrid的

我有我的jqGrid选择和正确地显示我的数据。我也有编辑/添加按钮在我的网格上添加/编辑数据。但是,我不知道如何让这些添加/编辑更新MySQL数据库。有什么建议么?

这里是我的scripts.js中的文件:

$("#table-maintenance-conflicts").jqGrid(
    { 
     url:'maintenanceConflicts.php', 
     editurl:'maintenanceConflicts-edit.php', 
     datatype: 'xml', 
     mtype: 'GET', 
     colNames:['Conflict Code', 'Description', 'Updated By', 'Updated On'], // Set column names of the grid 
     colModel :[ // Set the settings for each individual column of the grid 
      { 
       name:'conflictCode', 
       index:'conflictCode', 
       width:120, 
       align:'center', 
       editable:false, 
      }, 
      {name:'description', index:'description', width:200, editable:true, edittype:"text"}, 
      {name:'updatedBy', index:'updatedBy', width:120, editable:true, edittype:"text", editrules: {required: true}}, 
      {name:'updatedOn', index:'updatedOn', width:120, editable:false, editrules: {required: true}} 
     ], 
     pager: '#pager-maintenance-conflicts', 
     rowNum:10, // To start, the user will see 10 records on the first page 
     rowList:[10,15,20], // How many records is the user able to see per page? 
     sortname: 'conflictCode', 
     sortorder: 'desc', // Order the 'sortname' should be sorted in 
     viewrecords: true, // View the records upon grid startup? or wait until a search? 
     caption: 'Maintenance | Conflicts' // Title of the grid (at the top) 
    }).navGrid('#pager-maintenance-conflicts',{ 
     edit:true, 
     add:true, 
     view:true, 
     del:true, 
     search:true, 
     refresh:true 
    }); 

// ADD 
$("#add_table-maintenance-conflicts").click(function(){ 

    jQuery("#table-maintenance-conflicts").jqGrid('editGridRow',"new",{ 
     mtype: 'POST', 
     reloadAfterSubmit:false, 
     closeAfterAdd:true,   
    }); 

}); 

// EDIT 
$("#edit_table-maintenance-conflicts").click(function(){ 

    var gr = jQuery("#table-maintenance-conflicts").jqGrid('getGridParam','selrow'); 
    if(gr != null) 
     jQuery("#table-maintenance-conflicts").jqGrid('editGridRow',gr,{ 
      mtype: 'POST', 
      reloadAfterSubmit:false, 
      closeAfterEdit:true 
     }); 

}); 

// DELETE 
$("#del_table-maintenance-conflicts").click(function(){ 

    var gr = jQuery("#table-maintenance-conflicts").jqGrid('getGridParam','selrow'); 
    if(gr != null) 
     jQuery("#table-maintenance-conflicts").jqGrid('delGridRow',gr,{ 
      mtype: 'POST', 
      reloadAfterSubmit:false 
     }); 

}); 

这里是我的maintenanceConflicts-edit.php文件:

<?php 

//include the information needed for the connection to MySQL data base server. 
// we store here username, database and password 
$dbhost = "localhost"; 

$dbuser = "root"; 

$dbpassword = ""; 

$database = "ftdbadmin"; 

// connect to the database 
$db = mysql_connect($dbhost, $dbuser, $dbpassword) or die("Connection Error: " . mysql_error()); 
//echo "Connected to MySQL <br />"; 

// select the database 
mysql_select_db($database) or die("Error conecting to db."); 
//echo "Connected to the selected database: ".$database."<br />"; 

// If we're ADDING 
if($_POST['oper']=='add') 
{ 

} 

// If we're EDITING 
if($_POST['oper']=='edit') 
{ 
    $conflictCode  = mysql_real_escape_string($_POST['conflictCode']); 
    $description = mysql_real_escape_string($_POST['description']); 
    $updatedBy = mysql_real_escape_string($_POST['updatedBy']); 
    // $updatedOn = mysql_real_escape_string($_GET['updatedOn']); 

$SQL = "UPDATE tblconflict SET updatedBy = '".$updatedBy."', description = '".$description."' WHERE conflictCode = ".$conflictCode; 

    echo $SQL; 
    $result=mysql_query($SQL) or die(mysql_error()); 

    mysql_close($db); 
} 

// If we're DELETING 
if($_POST['oper']=='del') 
{ 

} 

?> 

任何帮助将不胜感激!

+1

检查此链接http://www.trirand.com/blog/?p=617 – 2011-12-02 15:55:44

+0

谢谢安德烈,但该博客文章看起来像它专注于商业产品,PHP的jQGrid ... – FastTrack

+0

这是非常奇怪的我..我一直在搜索无处不在,找不到任何如何实现与我的网格添加/编辑/删除功能的任何好例子...任何人都有他们知道的任何示例或教程? – FastTrack

回答

-2

几个月前,我在Wiki,Google和这个网站上找到了这个数据。我偶然发现了jQGrid的这个PHP CRUD模板。稍微调整一下,我就可以使用我所有的网格。一旦你开始更多地使用它,你会注意到很多改进和扩展的空间。它应该让你开始正确的方向。

+0

请考虑直接在您的答案中提供解决方案。事实上,它符合不符合SO标准的仅链接答案。 – BartoszKP

+0

@BartoszKP链接是答案。为什么我会不必要地复制/粘贴链接的内容? – FastTrack

+1

这不是不必要的,因为链接可能会失效。它目前正在制定SO政策。例如,请阅读[this](http://meta.stackexchange.com/a/95691/231717),如果您真的对此感兴趣,可能还有大量的其他meta讨论。无论哪种方式,共识是只有链接的答案是不受欢迎的。 – BartoszKP

相关问题