如何添加/编辑/删除MySQL数据库与jqGrid


How to Add/Edit/Delete from/to MySQL DB with jqGrid

我是jQuery/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')
{
}
?>

任何帮助将非常感激!!

几个月前我在维基、谷歌和这个网站上找到了这个问题。我偶然发现了jQGrid的这个PHP CRUD模板。稍微调整一下,我让它与我所有的网格工作。一旦你开始更多地使用它,你会发现有很多改进和扩展的空间。