Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JSON文件创建javascript变量_Javascript_Php_Jquery_Json - Fatal编程技术网

从JSON文件创建javascript变量

从JSON文件创建javascript变量,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我在index.php文件中有相同的php变量: <?php $aoData = ' { "name": "count", "value": "5" } , { "name": "tbl", "value": "member" } , { "name": "0", "value": "id" } , { "name": "1", "value": "fname" } , { "name": "2

我在index.php文件中有相同的php变量:

<?php
        $aoData = '
        { "name": "count", "value": "5" } ,
        { "name": "tbl", "value": "member" } ,
        { "name": "0", "value": "id" } ,
        { "name": "1", "value": "fname" } ,
        { "name": "2", "value": "lname" } ,
        { "name": "3", "value": "username" } ,
        { "name": "4", "value": "mail" }
        ';
        include("main.php");
?>

但是这种方法不起作用。

看起来您的数据已经
json\u encode()
ed在主PHP文件中了。您应该能够使用
htmlentities()
确认echo是属性安全的

所以
run()


请注意,如果
$aoData
看起来像这样,那么使用
json\u encode()
所做的工作将起作用:

$aoData = array(
    array( 'name' => '', 'value' => '' ),
    array( 'name' => '', 'value' => '' ),
    array( 'name' => '', 'value' => '' ),
);

json\u encode()
获取一个数组/对象并将其转换为json,该字符串的格式与当前的
$aoData
类似。

您不应该在PHP中手工编写json。由此产生的潜在编码问题太多。制作一个PHP数组,然后对其进行编码

$aoData = array();
$aoData[] = array('name' => 'count', 'value => 5);
...

echo json_encode($aoData);

数据表函数需要两个参数。但您需要向该函数传递一个变量。
浏览datatable及其输入类型的文档

您可以在同一页面上的javascript函数上直接使用php变量

尝试提醒javascript参数进行自我检查
您的json.encode未正确处理。您已经有了一个json字符串。那你为什么需要编码呢我同意泰勒·卡特的观点 您应该从PHP数组对JSON进行编码。
下面的示例是完全独立的,您可以在控制台中看到结果

<?php
$aoData = json_encode(array(
  array("name"  => "count", "value" => "5"),
    array("tbl" => "count", "value" => "member"),
    array("0"   => "count", "value" => "id"),
    array("1"   => "count", "value" => "fname"),
    array("2"   => "count", "value" => "lname"),
    array("3"   => "count", "value" => "username"),
    array("4"   => "count", "value" => "mail"),
));
?>
<html>
<body>
<input type="button" onclick="console.log(<?=htmlentities($aoData);?>)"  value="run"/>;
</body>
</html>


我试过了。不运行为什么您对已经编码的数组进行编码?@Oveys您能告诉我们更多关于它为什么不运行的详细信息吗?否则我们就帮不了你了。例如,当您尝试运行时出现的错误消息。我尝试了您的第二个报价,但没有运行。当我运行程序时,在Mozilla控制台中,我从jquery.min.js文件的第1行中发现了许多脚本错误。我认为这是htmlentities()函数的问题,我解决了所有问题。但是我有一个小问题。我有两个参数,$aoData和$aoCol$aoCol是一个对象,但$aoData是数组。它是一个json对象,如何将这个obj作为数组发送给js函数?
$aoData = array();
$aoData[] = array('name' => 'count', 'value => 5);
...

echo json_encode($aoData);
<?php
$aoData = json_encode(array(
  array("name"  => "count", "value" => "5"),
    array("tbl" => "count", "value" => "member"),
    array("0"   => "count", "value" => "id"),
    array("1"   => "count", "value" => "fname"),
    array("2"   => "count", "value" => "lname"),
    array("3"   => "count", "value" => "username"),
    array("4"   => "count", "value" => "mail"),
));
?>
<html>
<body>
<input type="button" onclick="console.log(<?=htmlentities($aoData);?>)"  value="run"/>;
</body>
</html>