javascript - PHP 将数组项传递给 javascript

标签 javascript php arrays

我在将数组项从 PHP 传递到 Javascript 函数时遇到了一些困难。

我有一个类似这样的 txt 文件:

recipe1 flour milk
recipe2 egg milk
recipe3 flour salt

我读取 txt 文件并需要在列表中列出所有食谱:

recipe1
recipe2
recipe3

当用户点击任何食谱时,相应的成分将显示在文本区域中。

在我的示例中,我将显示在文本区域中

flour milk 

如果用户点击 recipe1,

egg milk

如果用户点击recipe2等

这是我的代码:

这是将用我将传递给它的文本填充文本区域的 JavaScript。

<script language="javascript" type="text/javascript">
function addtext(text){
document.testForm.cmd.value +=text;
}
</script>

这是逐行读取txt文件并放入的代码

recipe1、recipe2、recipe3 等在一个数组中 面奶、蛋奶、面盐等另列。

<?php

$recipe=array();
$ingredient=array();

$fp=fopen("recipes.txt", "r");
while (!feof($fp))
{
    $line=fgets($fp);

    $line=explode(' ', $line, 2);

    $recipe[]=$line[0];
    $ingredient[]=$line[1];

}
fclose($fp);

//Print elements
$i=0;
foreach ($recipe as $rec) {

echo '<a href="#" onclick="addtext(\''.$ingredient[$i].'\'); return false">' . $rec . '</a><br />';

$i++;

}


?>

食谱列表工作正常,我无法将 $ingredient[$i] 传递给 Javascript addtext 函数。我试过没有成功使用:

$value = echo json_encode($ingredient[$i])

感谢任何帮助,

提前致谢。

最佳答案

我更喜欢 json_encode() 整个数组并将其传递给 JavaScript。这是一个非常基本的示例:

<?php

$fruits = array(
  'cherry',
  'grape',
  'orange',
);

print '<script>var fruits = ' . json_encode($fruits) . ';</script>';

然后在 Javascript 中:

console.log(fruits);

将向您展示您必须使用的工具,即:

["cherry", "grape", "orange"] 

因此 fruits[1] 返回 grape

关于javascript - PHP 将数组项传递给 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21388291/

相关文章:

javascript - 如何将单击的链接的值传递到另一个页面并在跨度中显示它

c - 如何在c中将字符串存储在数组中

php - PHP 中 $this->$variable 语法不明确

Javascript Switch 语句未提供正确的结果

javascript - 如何将 UTF8 字符串转换为字节数组?

javascript - 三个js : How to dynamically change width and height of plane?

php - 将 MYSQL 结果导出到 CSV

python - 将元组分配给两个数组字段

java - 将一个数组的元素分配给另一个数组

javascript - 在 wamp ws 中使用 AutobahnJS 时的连接处理程序