【问题标题】:How to build JS array from PHP array and return to string?如何从 PHP 数组构建 JS 数组并返回字符串?
【发布时间】:2011-12-14 12:09:45
【问题描述】:

我正在尝试从 PHP 字符串数组构建一个 JS 字符串数组,但我的 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 第 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>

提前谢谢你。

【问题讨论】:

  • 您的echo "&lt;script language=javascript&gt;buildarray($i,$data)&lt;/script&gt;"; 错误。应该是echo "&lt;script language=\"javascript\"&gt;buildarray($i,$data)&lt;/script&gt;"; 注意language="javascript" 需要如何转义。
  • @luastoned: language 自 1999 年以来已弃用。
  • 是的,但是他想用的东西都需要正确转义,不过还是谢谢指出!

标签: php javascript html arrays


【解决方案1】:

您是否尝试从 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;
    }
?>

【讨论】:

  • 我更新了我的帖子。函数 myArray.push() 似乎不起作用。当我尝试显示其中一行时,我仍然得到“未定义”。
【解决方案2】:

要创建一个有效的 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.ini 中调用 javascript 函数。 他们被称为不同的一面。 php在服务器端,js在客户端。

【讨论】:

  • 抱歉造成混淆,$row["row1"] 和 $row["Row2"] 位于同一个字符串 $data 中。所以它很疯狂:$php_array[$i] = $data.构建 $js_array 后,如何将它与 JavaScript 一起使用?
  • 把它放到你的模板里。类似的东西:
【解决方案3】:

您可以将字符串从 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。好久没写了。 希望这会有所帮助。

附言 抱歉弄错了。

【讨论】:

  • 对不起,我不明白php端和js端的链接。
猜你喜欢
  • 1970-01-01
  • 2017-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-28
  • 2011-07-27
相关资源
最近更新 更多