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"); が、戻りアラートは配列になり、パラメーターを渡すときに変更するたびに、アラートとして 1 のデータを取得しました$array_sample$array_sample[0]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 コードの周りに quotes( ') がないことに注意してください。このように、文字列ではなく配列リテラルが渡されshow_error_messageます。

于 2012-10-29T06:08:03.340 に答える
5

関数を使用して PHP 配列を json データにエンコードしjson_encode()ます。

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 に答える