如何从PHP数组构建JS数组并返回字符串?

时间:2011-12-14 12:09:46

标签: php javascript html arrays

我正在尝试从PHP String数组构建一个JS String数组,但我的JS技能有点受限。 我还想显示并将选定的JS行返回到HTML或PHP字符串。有可能吗?

我将不胜感激。

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 part1:

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

Javascript part2:

<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>

提前谢谢。

3 个答案:

答案 0 :(得分: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);

上面的代码:你不能在php中调用javascript函数。 他们被称为不同的一方。 php在服务器上,js在客户端上。

答案 1 :(得分: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 抱歉错了。

答案 2 :(得分: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;
    }
?>