簡體   English   中英

如何將php變量傳遞給jquery

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM