从JSON文件创建javascript变量
我在index.php文件中有相同的php变量:从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
<?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>