2011-11-24 85 views
-2

我想用變量填充php中的數組,但它根本沒有工作。我正在使用JSON和Javascript ..使用變量在PHP中填充assoc數組

無論如何,這是javascript調用的PHP代碼。

<?php 

$username = $_POST['username']; 

    $json = '{ 
    "userdata": [ 
     { 
      "first":"$username" 
     }, 
     { 
      "first":"Lester" 
     }, 
     { 
      "first":"Mannix" 
     } 
    ] 
}'; 
echo $json; 

?> 

現在,問題是,我回到Javascript的是「$ username」,純文本,而不是變量的值。

在此先感謝。

+0

$用戶名沒有被認定爲變量的錯誤的方式。使用「第一個」:「'。$ username。'」 –

+3

考慮使用[json_encode()](http://php.net/manual/en/function.json-encode.php),除非*真*不' t需要它 – Alexander

回答

0

的變量不是在單引號[doc]

不像雙引號和定界符語法,變量的認可,當它們出現在單引號的字符串逃脫特殊字符序列不會被擴大。

$json = '{ 
    "userdata": [ 
     { 
      "first":"'.$username.'" 
     }, 
     { 
      "first":"Lester" 
     }, 
     { 
      "first":"Mannix" 
     } 
    ] 
}'; 
+1

-1,Do __not__在不使用'json_encode'的情況下在PHP中生成json。 –

+0

@macek:我剛剛糾正了OP的錯誤。 json_encode的要求是'(PHP 5> = 5.2.0,PECL json> = 1.2.0)' –

+0

@Martin:您可以在較低版本的php上使用json_encode,只需下載http://pear.php.net/package/Services_JSON/ –

0

使用json_encode

$json = array('userdata' => array(
    array('first'=>'foo'), 
    array('first'=>'bar'), 
    array('first'=>'bof') 
)); 

echo json_encode($json); 

輸出

{"userdata":[{"first":"foo"},{"first":"bar"},{"first":"bof"}]} 
+0

你忘了說爲什麼不是他的代碼工作.. –

0

這是創建一個JSON陣列

$json = array(
      "userdata" => array(
        array("first" => $_POST['username']), 
        array("first" => "Lester"), 
        array("first" => "Mannix"), 
      ) 
     ); 
echo json_encode($json);