【问题标题】:PHP pass array item to javascriptPHP将数组项传递给javascript
【发布时间】:2014-01-27 18:04:53
【问题描述】:

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

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

recipe1 flour milk
recipe2 egg milk
recipe3 flour salt

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

recipe1
recipe2
recipe3

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

在我的示例中,我将显示在 textarea 中

flour milk 

如果用户点击recipe1,

egg milk

如果用户点击recipe2等

这是我的代码:

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

<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])

感谢任何帮助,

提前致谢。

【问题讨论】:

    标签: javascript php arrays


    【解决方案1】:

    我更喜欢 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

    【讨论】:

      【解决方案2】:

      一般你应该渲染&lt;script&gt;的内容,例如,像这样 (只是想法,不是确切的代码):

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

      【讨论】:

        猜你喜欢
        • 2011-05-16
        • 2012-06-26
        • 1970-01-01
        • 1970-01-01
        • 2014-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多