-2

我正在使用 MagicSuggest 自动完成标签。此代码完美运行:

    $(document).ready(function() {
        var ms3 = $('#ms3').magicSuggest({
            data: [{id:12,name:'php'},{id:1212,name:'java'},{id:112,name:'python'},{id:125,name:'html'},{id:172,name:'css'}]
        });
    });

但是这个没有:

    $(document).ready(function() {
        var ms3 = $('#ms3').magicSuggest({
            data:'data.php'
        });
    });

php:

    <?php
          echo "[{id:12,name:'php'},{id:1212,name:'java'},{id:112,name:'python'},{id:125,name:'html'},{id:172,name:'css'}]";
    ?>

PS 这在 data:'data.json' 里面有 json 数据时有效。

4

3 回答 3

1

我认为问题可能是 php 文件返回错误的 mime 类型。data.php尝试在文件顶部添加它
header('Content-type: application/json');

所以你的data.php文件看起来像

<?php
   header('Content-type: application/json');
   echo "[{id:12,name:'php'},{id:1212,name:'java'},{id:112,name:'python'},{id:125,name:'html'},{id:172,name:'css'}]";
?>
于 2013-04-29T10:26:30.193 回答
1

在 JSON 规范中不存在单引号 - 您必须更改为双引号

更好的是你可以使用 json_encode 函数

header('Content-type: application/json');
echo json_encode(array(
    array('id'=>12, 'name'=> 'php')
));
于 2013-04-29T10:26:38.177 回答
0

你为什么不...

<?php
    $mydata = "[{id:12,name:'php'},{id:1212,name:'java'},{id:112,name:'python'},{id:125,name:'html'},{id:172,name:'css'}]";
?>

$(document).ready(function() {
    var ms3 = $('#ms3').magicSuggest({
        data: <?php echo$mydata;?>
    });
});

这样您就可以$mydata使用来自数据库查询等的数据进行填充。

或者

data.php在您的文件中尝试以下操作;

<?php
    header('Content-type: application/json');
    echo "[{id:12,name:'php'},{id:1212,name:'java'},{id:112,name:'python'},{id:125,name:'html'},{id:172,name:'css'}]";
 ?>
于 2013-04-29T10:24:22.603 回答