4

我正在做一些事情,我需要将一个数组从我的 php 传递给外部 javascript 上的函数。我目前正在做一些测试,看起来像这样:

<input type="text" onclick="show_error_message('<?php echo $array_sample ?>')" readonly="readonly">

javascript函数就是这个:

function show_error_message(test) {
alert(test)
}

我的 $array_sample 包含的数据是array("1","2","3"); 但返回警报将是 Array 并且每当我在传递参数时将其更改$array_sample为时,$array_sample[0]我都会得到一个数据为 1 作为警报。我想知道如何将整个数组传递给它,以便也由 javascript 中的数组获取。正如你所看到的,我打算将它作为错误处理的弹出消息,这就是为什么我需要它是动态的。

4

3 回答 3

12

采用json_encode

onclick='show_error_message(<?php echo  json_encode($array_sample) ?>)'

或者

onclick="show_error_message(<?php echo htmlspecialchars(json_encode($array_sample)) ?>)"

注意 php 代码周围没有引号('),这样一个数组文字被传递给show_error_message而不是一个字符串。

于 2012-10-29T06:08:03.340 回答
5

json_encode()使用函数将 PHP 数组编码为 json 数据。

并在 Javascript 中用于JSON.parse()解析 Json 字符串。

于 2012-10-29T06:07:40.813 回答
4

下面的代码展示了如何将 php 数组传递给 javascript:

<script type="text/javascript">
    function mufunc(a)
    {
        var temp = new Array();
        temp = a.split('~');
        for(i=0;i<temp.length;i++)
        {
            alert(temp[i]); 
        }
    }
</script>

<?php
    $a = array('a','b','c');
    $b = implode("~",$a);
?>
<a href="javascript:void(0)" onClick="mufunc('<?php echo $b; ?>')">Click Here</a>
于 2012-10-29T07:22:00.463 回答