2016-06-20 40 views
0

我试图通过PHP变量jQuery的,我已经尝试使用如何通过PHP变量将jQuery

但它不工作的成功,当我尝试使用

数据源: insted的

dataSource: [ 
    { childName: "Child1", childId: 1, parentId: 1 }, 
    { childName: "Child2", childId: 2, parentId: 2 }, 
    { childName: "Child3", childId: 3, parentId: 1 }, 
    { childName: "Child4", childId: 4, parentId: 2 } 
] 

它不能显示的第二选择,但我觉得在$数据是一样的原始数据

我的代码,

<head> 
<meta charset="utf-8"/> 
<title>Kendo UI Snippet</title> 

<link rel="stylesheet"  href="http://kendo.cdn.telerik.com/2016.2.607/styles/kendo.common.min.css"/> 
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.2.607/styles/kendo.rtl.min.css"/> 
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.2.607/styles/kendo.silver.min.css"/> 
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.2.607/styles/kendo.mobile.all.min.css"/> 

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
<script src="http://kendo.cdn.telerik.com/2016.2.607/js/kendo.all.min.js">   
</script> 
</head> 
<body> 

<input id="parent" /> 
<input id="child" /> 
<?php 
$data = '[ 
    { childName: "Child1", childId: 1, parentId: 1 }, 
    { childName: "Child2", childId: 2, parentId: 2 }, 
    { childName: "Child3", childId: 3, parentId: 1 }, 
    { childName: "Child4", childId: 4, parentId: 2 } 
]'; 
?> 
<script> 
$("#parent").kendoDropDownList({ 
    dataTextField: "parentName", 
    dataValueField: "parentId", 
    dataSource: [ 
    { parentName: "Parent1", parentId: 1 }, 
{ parentName: "Parent2", parentId: 2 } 
    ] 
    }); 

$("#child").kendoDropDownList({ 
cascadeFrom: "parent", 
dataTextField: "childName", 
dataValueField: "childId", 

dataSource: <?php json_encode($data); ?> 
}); 
</script> 

</body> 
</html> 

我不知道我的代码有什么问题,请帮我解决问题,anyhelp将不胜感激!谢谢!

+0

的【如何传递变量可能的复制和数据从PHP到JavaScript?](http://stackoverflow.com/questions/23740548/how-t邻通变量和 - 数据 - 从 - PHP到的JavaScript) – John

回答

1

您忘记echo你的PHP变量

<?php echo json_encode($data); ?> 

加,因为你希望它以JSON格式,你必须分析它也正因为如此,你必须附上属性名用双引号。

你的PHP变量将变为:

$data = '[ 
    { "childName": "Child1", "childId": 1, "parentId": 1 }, 
    { "childName": "Child2", "childId": 2, "parentId": 2 }, 
    { "childName": "Child3", "childId": 3, "parentId": 1 }, 
    { "childName": "Child4", "childId": 4, "parentId": 2 } 
]'; 

dataSource将是:

dataSource: JSON.parse(<?php echo json_encode($data); ?>) 

其工作:)

 Its working :)

0

这里的问题是,您试图直接将字符串解析为JSON,这样您将在输出字符串中同时得到“新行”和其他字符,正如您在此测试中看到的:

http://sandbox.onlinephpfunctions.com/code/3c31cecddd99aee0562d09c84b9a8e5770c3444b

但是你能达到所要传递一个正确的格式排列的json_encode功能,而不是字符串像这样的输出:

$data_array = array(
    array('childName' => "Child1", 
      'childId' => "1", 
      'parentId' => "1"), 
    array('childName' => "Child2", 
      'childId' => "2", 
      'parentId' => "3"), 
    array('childName' => "Child3", 
      'childId' => "3", 
      'parentId' => "3"), 
    array('childName' => "Child4", 
      'childId' => "4", 
      'parentId' => "4"),   
); 

echo json_encode($data_array); 

/* 
Output: 
[{"childName":"Child1","childId":"1","parentId":"1"}, 
{"childName":"Child2","childId":"2","parentId":"3"}, 
{"childName":"Child3","childId":"3","parentId":"3"}, 
{"childName":"Child4","childId":"4","parentId":"4"}] 
*/ 

编辑:为@穆罕默德 - mudassir指出ÿ您还需要使用JSON.parse将字符串解析回JSON。

dataSource: JSON.parse(<?php echo json_encode($data_array); ?>)