我正在尝试从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>
提前谢谢。
答案 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;
}
?>