【发布时间】:2020-12-13 10:15:27
【问题描述】:
我正在尝试将一些值从 PHP 数组传递到 JavaScript。
我的 php 变量 $contacts_info 具有以下值。
Array ( [0] => Array ( [contact_id] => 20 [type_id] => 2 [contact_type] => Representative Phone [contact_value] => 0987654321 )
[1] => Array ( [contact_id] => 21 [type_id] => 4 [contact_type] => Shop Address [contact_value] => 0987654321 )
[2] => Array ( [contact_id] => 22 [type_id] => 3 [contact_type] => Emergency Phone [contact_value] => 0987654321 )
[3] => Array ( [contact_id] => 23 [type_id] => 2 [contact_type] => Representative Phone [contact_value] => 0987654321 )
[4] => Array ( [contact_id] => 24 [type_id] => 3 [contact_type] => Emergency Phone [contact_value] => 0987654321 )
[5] => Array ( [contact_id] => 25 [type_id] => 4 [contact_type] => Shop Address [contact_value] => 0987654321 ) ) 1
我正在尝试使用 JavaScript 在带有 for 循环的某些 Combobox 中分配特定值。但我这样做有问题。
Type: ParseError
Message: syntax error, unexpected '<', expecting ']'
我的 JavaScript 代码:
<script>
var total_counter = "<?php echo $total_contact; ?>";
var contact_info = "<?php json_encode($contacts_info); ?>";
for (var i = 0; i <= total_counter - 1; i++) {
let element = document.getElementById("contact_type_id_" + i);
element.value = "<?php echo $contacts_info[<script>document.writeln(i);</script>]['type_id'] ?>";
}
</script>
问题出在这部分<?php echo $contacts_info[<script>document.writeln(i);</script>]['type_id'] ?>。谁能帮帮我。
谢谢。
【问题讨论】:
-
var contact_info = <?php echo json_encode($contacts_info) ?>;json_encode 无论如何都会添加它们),你想要回显结果。或者:var contact_info = <?= json_encode($contacts_info) ?>; -
php 在服务器上运行,而 Javascript 在 php 完成后很长时间在浏览器中运行。您在 javscript 循环中不需要 php,因为您已经将 php 数组作为 json 传递给循环上方的变量
-
您也不想在
<?php json_encode($contacts_info); ?>周围加上引号,但也缺少echo -
这将有助于 json:stackoverflow.com/questions/63527595/…
-
我想知道这个错误...
Message: syntax error, unexpected '<', expecting ']'...结果代码中没有<。至少不应该有。
标签: javascript php codeigniter model-view-controller