[英]how to pass php variable to jquery
我嘗試將php變量傳遞給jquery,我嘗試使用
但是,當我嘗試使用它時,它並不成功
dataSource:已插入
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 }
]
它不能顯示第二個選擇,但我發現$ data與原始數據相同
我的代碼
<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>
我不知道我的代碼有什么問題,請幫助我解決問題,任何幫助將不勝感激! 謝謝!
您忘記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); ?>)
它的工作:)
這里的問題是,您試圖將字符串直接解析為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"}]
*/
編輯:正如@ mohammad-mudassir指出的那樣,您還需要使用JSON.parse
將字符串解析回JSON。
dataSource: JSON.parse(<?php echo json_encode($data_array); ?>)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.