如何在 PHP / MySQL 中使用 jQuery SlickGrid(加载服务器数据并保存更改)

Posted

技术标签:

【中文标题】如何在 PHP / MySQL 中使用 jQuery SlickGrid(加载服务器数据并保存更改)【英文标题】:How to use jQuery SlickGrid with PHP / MySQL (load server data and save changes) 【发布时间】:2011-04-16 03:37:48 【问题描述】:

请在SlickGrid 代码中找到的所有示例中,数据数组是在客户端随机生成的。

获取:我需要知道如何使用 phpmysql 数据库中获取此信息并使用 jQuery / AJAX 将其返回到 SlickGrid。

保存: 我已经在 *** 上找到了一个链接,用于使用隐藏输入 (Saving changes in SlickGrid) 从网格中保存数据,但目前还不清楚我应该如何处理这些数据以获取PHP 脚本。

一些详细的帮助和/或指针将不胜感激,我是一个菜鸟,我没有找到关于这个很棒的插件的足够文档。

【问题讨论】:

【参考方案1】:

SlickGrid 需要一个数据数组来填充表格。您可以在 PHP 中将其创建为字符串,并在创建 SlickGrid 时在 javascript 中使用它。

请注意;这是快速、肮脏和未经测试的!

PHP

$data = '';
$i = 0;

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

    $i++;

JavaScript

<script type="text/javascript">
    var grid;

    var columns = [
        id:"title", name:"Title", field:"title",
        id:"duration", name:"Duration", field:"duration",
        id:"%", name:"% Complete", field:"percentComplete",
        id:"start", name:"Start", field:"start",
        id:"finish", name:"Finish", field:"finish",
        id:"effort-driven", name:"Effort Driven", field:"effortDriven"
    ];

    var options = 
        enableCellNavigation: false,
        enableColumnReorder: false
    ;

    $(function() 
        var data = [];
        <?php echo $data; ?> //This is where we echo the PHP variable $data which contains our JavaScript array as a string.

        grid = new Slick.Grid($("#myGrid"), data, columns, options);
    )
</script>

【讨论】:

感谢您的回复,山姆。请问,我需要知道,PHP 会将数组输出为 JSON 还是默认的 print / echo? 请我在这里仍然需要一些帮助。我尝试以 JSON 形式回显并尝试回显,但均无效。请问有人吗? 您不需要将其作为 JSON 回显,它已经在此行 &lt;?=$data?&gt; 处打印在正确的位置。 在没有原生 JSON 函数的浏览器中,这仍然有效,还是需要从数组转换为 jason? 如果你先准备一个关联数组,将所有数据保存到 $data 上,然后只使用 =json_encode($data)?> 会更干净。这样会干净得多。

以上是关于如何在 PHP / MySQL 中使用 jQuery SlickGrid(加载服务器数据并保存更改)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP PDO 中使用异步 Mysql 查询

如何在 PHP 函数中正确使用 MySQL 查询? [关闭]

如何使用 PHP 在 Mysql 中存储数组

如何在 MySQL 中使用 Flutter 和 php 上传图片

如何使用 PHP 在 MySQL 中插入 now() 函数 [重复]

用php在mysql中,如何截取最大日期和最小日期