2011-12-14 71 views
0

我想從一個PHP字符串數組構建一個JS字符串數組,但是我的JS技能有點有限。 我也想顯示並返回一個選定的JS行到HTML或PHP字符串。可能嗎?如何從PHP數組構建JS數組並返回字符串?

我將不勝感激任何幫助。

PHP部分(工作):

$i = 0; 
while($row = mysql_fetch_array($result)){ //get data from a mysql table. 
    $data = $row["sql_row"]; // string built 
    echo "<script language=javascript>buildarray($i,$data)</script>"; //call the JS function 
    $i = $i +1; 
    } 

的Javascript第1部分:

<script type="text/javascript"> 
var myArray=new Array(); 
    function buildarray(id, text){ 
     myArray[id]=text; 
    } 
</script> 

的Javascript第2部分:

<script type="text/javascript"> 
function displayreturn(id){ 
    document.write(myArray[id]); //dpisplay the data in the row number "id" 
      return myArray[id]; //return the string 
    } 
</script> 

預先感謝您。

+0

您的`echo「」;`是錯誤的。應該是`echo'「;`請注意`language =」javascript「`是如何轉義的。 – luastoned 2011-12-14 13:19:24

+0

@luastoned:`語言`自1999年起棄用。 – Saxoier 2011-12-14 13:59:46

+0

是的,但無論他想使用什麼都需要妥善轉義,謝謝指出! – luastoned 2011-12-14 14:02:17

回答

0

您可以將字符串從PHP傳遞給javascript,然後使用split函數從該字符串中創建一個字母數組。

我會做這樣的

<script type="text/javascript"> 
    var arrStr =[]; 
    <?php 

    i = 0; 
    while($row = mysql_fetch_array($result)){ //get data from a mysql table. 
     $data = $row["row1"] . $row["Row2"]; 
     echo "arrStr.push('$data')"; 
     } 
    ?> 
</script> 

對不起我的PHP。很長一段時間沒有寫入。 希望這有助於。

PS 對不起,錯了。

+0

對不起,我不明白PHP端和JS端之間的鏈接。 – Julien 2011-12-14 13:02:38

0

你想從PHP調用Javascript函數嗎? (這不會起作用)。 如果我給你的權利,這是你想要的(從PHP數組得到JS)

var myArray = new Array(); // JS array 

<?php 
    $i = 0; 
    while ($row = mysql_fetch_array($result)) // get data from a mysql table. 
    { 
     $data = $row["row1"] . $row["Row2"]; 
     echo "myArray.push('$data');\n"; // push to the JS array 
     $i = $i + 1; 
    } 
?> 
1

要創建工作的JavaScript數組,存在可用的PHP函數。 其名爲json_encode,但僅在php5.3中可用。 只需撥打

<?php 
$i = 0; 
while($row = mysql_fetch_array($result)){ //get data from a mysql table. 
    $php_array[$row["row1"]] = $row["Row2"]; 
    $i = $i +1; 
} 
$js_array = json_encode($php_array); 

上面的代碼:你不能調用JavaScript函數在PHP。 他們被稱爲不同的一面。服務器上的php,客戶端上的js。