2010-02-01 63 views

Trả lời

14

Bạn có thể sử dụng json_encode chức năng, để trở về một cách an toàn một đối tượng JSON mà bạn có thể sử dụng trực tiếp trong JavaScript:

<?php 
    $phpArray = array("foo", "bar", "baz"); 
    //.... 
?> 

<script type="text/javascript"> 
var jsArray = <? echo json_encode($phpArray); ?>; 
</script> 

Đầu ra:

<script type="text/javascript"> 
var jsArray = ["foo","bar","baz"]; 
</script> 
+0

câu trả lời hay, một thẻ php đầy đủ sẽ có tính năng tuyệt vời hơn các thẻ ngắn (trên dòng 7). –

3

Một cái gì đó như thế này?

<?php 
    # create PHP array: 
    $php_array = array("one", "two", "three"); 

    # "pass" php array to JS array: 
    echo "<script language='JavaScript'>\n"; 
    echo "var js_array = new Array();\n"; 

    $ix = 0; 
    foreach($php_array as $key => $value) { 
    echo "js_array[$key] = $value;\n"; 
    } 

    # Rest of JavaScript..... 
    echo "</script>\n"; 
?> 

Và có lẽ để biết thêm:
http://www.scratch99.com/2008/03/creating-javascript-array-dynamically-from-php-array/

+0

Nó đẹp hơn: echo " \ n"; –

+1

Không cần giá trị $ key, vì một mảng JS không phải là một hashmap. Chỉ cần sử dụng js_array.push ($ value). – bdl

2

JSON là sự lựa chọn của bạn, vì một số phiên bản PHP 5.x, PHP có hàm json_encode().

<script type="text/javascript"> 
var arr = <?php echo json_encode($php_array); ?> 
</script> 

Như thường lệ, một số người đã viết hàm json_encode() cho phiên bản PHP cũ hơn, checkout the comments on php.net.

+0

PHP 5.2, theo http://us.php.net/json_encode –

1

Mảng trong PHP của bạn cần được hiển thị với JavaScript theo một cách nào đó. Nếu bạn muốn các mảng có sẵn cho JS trên tải trang ban đầu, bạn có thể làm điều đó như thế này:

<script type="text/javascript"> 
    myJSArray = <?php echo function_that_generates_array_in_js_syntax($myPHPArray); ?>; 
</script> 

Nếu biến không cần phải được tạo ra trên tải trang ban đầu, bạn có thể làm điều gì đó tương tự, nhưng sử dụng cuộc gọi AJAX. Chỉ cần có kịch bản PHP của bạn trả lời với mảng được định dạng cho JS và lưu trữ kết quả của cuộc gọi trong biến JS của bạn.

1

Ngôn ngữ địa phương trên PHP để JS mà không cần mở rộng json, sử dụng tham gia/implode và không có cấu trúc vòng lặp:

<?php 
$array= array('one','two','three'); 
$js_array= '["'. join('","', $array) .'"]'; 
?> 
<script type="text/javascript"> 
var js_array= <?php echo $js_array;?>; 
alert(js_array); 
</script> 
Các vấn đề liên quan