我正在研究PHP,并试图将PHP数组传递给javascript代码以动态创建属性并为其设置值。
我一直在发送如下所示的PHP数组。
PHP代码
$dataArray = array();
array_push($dataArray, $ticket['tickets']);
array_push($dataArray, $pendingTicket['pending_tickets']);
array_push($dataArray, $closedTicket['closed_tickets']);
以下是PHP数组。
Array
(
[0] => 4
[1] => 3
[2] => 1
)
JS代码
<script type="text/javascript">
var jArray = <?php echo json_encode($dataArray); ?>;
var ticketGraphData = [];
for(var i=0; i<jArray.length; i++){
ticketGraphData.push(jArray[i]);
}
alert(typeof ticketGraphData);
console.log(ticketGraphData);
var anchor1 = document.getElementById("firstGraph");
var anchor2 = document.getElementById("secondGraph");
var att1 = document.createAttribute("data-values");
var att2 = document.createAttribute("data-values");
att1.value = ticketGraphData;
anchor1.setAttributeNode(att1);
att2.value = ticketGraphData;
anchor2.setAttributeNode(att2);
</script>
我想将ticketGraphData
的值传递为[4,3,1]
。
但是在这里,当我尝试控制台数据并返回警报时,它在警报中显示Object
并在控制台中显示以下数据。
将数据设置为attribute
之后,看起来像
data-values="4,3,1"
但是我想把它们做成
data-values="[4,3,1]"
哪里做错了?还有其他替代方法可以实现这一目标吗?