我在将数组项从 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/