2014-01-27 135 views
1

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

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

recipe1 flour milk 
recipe2 egg milk 
recipe3 flour salt 

我读txt文件,并需要列出所有配方中的列表:

recipe1 
recipe2 
recipe3 

当任何配方用户点击相应的成分将显示在textarea中。

在我的例子,我将在textarea的

flour milk 

显示,如果用户在RECIPE1点击,

egg milk 

如果用户点击recipe2等

因此,这里是我的代码:

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

​​

这里其通过线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++; 

} 


?> 

食谱列表工作正常,我不能将$ ingredients [$ i]传递给Javascript addtext函数。我一直在使用没有成功尝试:

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

任何帮助appreaciated,提前

感谢。

回答

2

我宁愿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

0

一般来说,你应该呈现的<script>内容,例如,像这样 (只是想法,而不是精确的代码):

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