繁体   English   中英

PHP将数组项传递给javascript

[英]PHP pass array item to javascript

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

我有一个txt文件,它是这样的:

recipe1 flour milk
recipe2 egg milk
recipe3 flour salt

我阅读了txt文件,需要在列表中列出所有食谱:

recipe1
recipe2
recipe3

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

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

flour milk 

如果用户单击“配方1”,

egg milk

如果用户单击配方2等

所以这是我的代码:

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

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

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

将配方奶粉,鸡蛋奶粉,面粉盐等放在另一个数组中的配方1,配方2,配方3等。

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

通常,您应该呈现<script>内容,例如,如下所示(只是想法,而不是确切的代码):

echo '<script language="">
      var value = ' . json_encode($ingredient[$i]) . 
      '</script>';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM