首页 > 解决方案 > 将 PHP 数组传递给 JavaScript for 循环

问题描述

我正在尝试将 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'] ?>。任何人都可以帮我解决它。

谢谢你。

标签: javascriptphpcodeignitermodel-view-controller

解决方案


请执行以下操作,

  1. 您需要删除包含 PHP 脚本的双引号,将其""视为字符串。

  2. <?php echo json_encode($contacts_info); ?>丢失echo,因为 JSON 数组没有得到回显,因此可以将其分配给 javascript 变量contact_info

  3. 该变量contact_info已经有您的 JSON 数组,无需再次从 PHP 变量中获取它,

最终你的代码应该看起来像,

 <script>
        var total_counter = <?php echo $total_contact; ?>;
        var contact_info = <?php echo json_encode($contacts_info); ?>;
        for (var i = 0; i <= total_counter - 1; i++) {
            let element = document.getElementById("contact_type_id_" + i);
            element.value = contact_info[i].type_id ;
        }
    </script>

推荐阅读