2014-01-27 169 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>';