使用php在SlickGrid中保存更改

使用php在SlickGrid中保存更改,php,jquery,mysql,grid,slickgrid,Php,Jquery,Mysql,Grid,Slickgrid,我设置了一个SlickGrid,它使用PHP从我的数据库中读取数据,当我试图将数据保存回数据库时,我的问题出现了,我试图使用JSON给我一个数组,然后我可以使用该数组写回数据库,我看到这个线程解释了这一点: 因此,我在代码中有隐藏的表单元素,使用JSON对数据变量进行编码,将其分配给表单上的数据隐藏输入,该表单发布到名为save_price.php的页面,问题是当我打印或var_转储数据变量时,我的输出为null,我认为这可能与我如何使用PHP将内容添加到数据变量有关,或者我做了一些明显错误的

我设置了一个SlickGrid,它使用PHP从我的数据库中读取数据,当我试图将数据保存回数据库时,我的问题出现了,我试图使用JSON给我一个数组,然后我可以使用该数组写回数据库,我看到这个线程解释了这一点:


因此,我在代码中有隐藏的表单元素,使用JSON对数据变量进行编码,将其分配给表单上的数据隐藏输入,该表单发布到名为save_price.php的页面,问题是当我打印或var_转储数据变量时,我的输出为null,我认为这可能与我如何使用PHP将内容添加到数据变量有关,或者我做了一些明显错误的事情,希望您能看到问题所在,没有太多关于使用PHP检索/保存到数据库的在线文档,所以在这一次,我的头撞到了墙上,这是我的代码:

好吧,我发现了问题,只是万一有人在努力让这一切正常工作,这是工作代码,它从数据库获取数据,然后将更改的数据发送到另一个页面进行处理,这需要一些改进,一旦我实现了这一切,就会发生这种情况:

<?php 
include("includes/check_session.php");
require_once('includes/functions.php');
require_once('includes/config.php');

$data = '';
$i = 0;

$query = "
    SELECT * FROM `prices`";
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
    $data .= '
        data['.$i.'] = {
            id: "'.$row['id'].'",
            title: "'.$row['title'].'",
            duration: "'.$row['duration'].'",
            percentComplete: "'.$row['percentComplete'].'",
            start: "'.$row['start'].'",
            finish: "'.$row['finish'].'",
            effortDriven: "'.$row['effortDriven'].'"
        };
    ';

    $i++;

echo $data;
}

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset=utf-8>

    <?php // include("includes/cms_head_scripts.php"); ?>
    <link rel="stylesheet" href="css/slick.grid.css" type="text/css" media="screen" charset="utf-8" />
    <link rel="stylesheet" href="css/smoothness/jquery-ui-1.8.5.custom.css" type="text/css" media="screen" charset="utf-8" />
    <link rel="stylesheet" href="css/examples.css" type="text/css" media="screen" charset="utf-8" />
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script language="javascript" src="js/jquery.json.js"></script>

</head>
<body>
    <div id="content_cont">

        <div id="main">

                <div style="position:relative">
                    <div style="width:600px;">
                        <div id="myGrid" style="width:100%;height:500px;"></div>
                    </div>
                </div>  



            pricing

        </div><!-- #main -->

    </div><!-- #content_cont -->

        <script src="lib/firebugx.js"></script>


        <script src="lib/jquery-ui-1.8.5.custom.min.js"></script>
        <script src="lib/jquery.event.drag-2.0.min.js"></script>

        <script src="slick.core.js"></script>
        <script src="plugins/slick.cellrangeselector.js"></script>
        <script src="plugins/slick.cellselectionmodel.js"></script>
        <script src="slick.editors.js"></script>
        <script src="slick.grid.js"></script>


        <script type="text/javascript">
            var grid;
            var data = [];
            var columns = [
                {id:"title", name:"Title", field:"title", editor:TextCellEditor},
                {id:"duration", name:"Duration", field:"duration", editor:TextCellEditor},
                {id:"%", name:"% Complete", field:"percentComplete", editor:TextCellEditor},
                {id:"start", name:"Start", field:"start", editor:TextCellEditor},
                {id:"finish", name:"Finish", field:"finish", editor:TextCellEditor},
                {id:"effort-driven", name:"Effort Driven", field:"effortDriven", editor:TextCellEditor}
            ];

            var options = {
                    editable: true,
                    enableCellNavigation: true,
                    asyncEditorLoading: false,
                    autoEdit: true
                };

            $(function() {

                <?php echo $data ?>
                grid = new Slick.Grid($("#myGrid"), data, columns, options);

            })



        </script>

<form method="POST" action="save_price.php">
    <input type="submit" value="Save">
    <input type="hidden" name="data" value="">
</form>
<script type="text/javascript">
  $(function() {
    $("form").submit(
      function() {
        $("input[name='data']").val($.JSON.encode(data));

      }
    );
  });
</script>

</body>
</html>

定价
var网格;
var数据=[];
变量列=[
{id:“title”,name:“title”,field:“title”,editor:TextCellEditor},
{id:“duration”,name:“duration”,field:“duration”,editor:TextCellEditor},
{id:“%”,名称:“%Complete”,字段:“percentComplete”,编辑器:TextCellEditor},
{id:“开始”,name:“开始”,field:“开始”,editor:TextCellEditor},
{id:“finish”,name:“finish”,field:“finish”,editor:TextCellEditor},
{id:“努力驱动”,名称:“努力驱动”,字段:“努力驱动”,编辑器:TextCellEditor}
];
变量选项={
是的,
enableCellNavigation:true,
asyncEditorLoading:false,
自动编辑:真
};
$(函数(){
grid=new Slick.grid($(“#myGrid”)、数据、列、选项;
})
$(函数(){
$(“表格”)。提交(
函数(){
$(“输入[name='data']”)val($.JSON.encode(数据));
}
);
});

添加额外信息时,编辑问题是个好主意。如果您找到了问题的答案,您应该将其作为答案添加,只要它是一个解决方案,也就是说。@tommy我也有相同的观点,但我不确定如何处理表单中的数据以更新服务器。您介意发布您的save_price.php代码吗?谢谢