【问题标题】:error trasfering php array to javascript将php数组传输到javascript时出错
【发布时间】:2014-02-18 11:30:42
【问题描述】:

我有这个数组:

$men['display']=array( 
                  "edit"        =>"1", 
                  "description" =>"2", 
                  "phone"       =>"3", 
                  "mail"        =>"4" 
                 );

我尝试使用以下方法将其转移到 javascript:

<?php $disArray = json_encode($men['display']);?>

然后,我将其发送到 javascript:

<select id="selectBoxHere" onChange="loadInnerHTML('<?php $disArray ?>')";>

由于某种原因,我的 javascript 函数“loadInnerHTML”没有将我的数组发送到 javascript。

【问题讨论】:

  • 什么是 loadInnerHTML?
  • 您正在向 loadInnerHTML() 发送 JSON 字符串,而不是数组。要么删除<?php $disArray ?> 周围的'',要么使用JSON.parse() 将字符串解析为数组。另外,您没有回显变量。
  • 它是一个javascript函数。我正在尝试使用 ajax 将 php 数组传递到不同的页面。
  • 你需要解码来自php的Json。阅读:[在此处输入链接描述][1] [1]:stackoverflow.com/questions/4935632/…
  • @user976990 呃,不。如果你把它交给javascript(见下面我的回答)你不需要解码。

标签: javascript php arrays parameter-passing


【解决方案1】:

您忘记了echo 声明。

如果你使用单引号,它会变成一个字符串。对于不需要单引号的 javascript 对象,json_encode 将确保它是 javascript 安全的。

loadInnerHTML(<?php echo $disArray ?>)

我还建议您先将此变量直接存储在 javascript 中,而不是将其传递给函数。否则你必须担心双引号内的双引号,破坏你的&lt;select&gt;标签。

var disArray = <?php echo $disArray ?>;

那么你就可以使用那个变量了。

loadInnerHTML(disArray)

【讨论】:

    【解决方案2】:

    在php中回显一个数组会导致

    var dis_array = Array
    

    哪个js看不懂。试试:

    var disArray = JSON.parse( '<?php echo json_encode( $disArray  ) ?>' );
    

    【讨论】:

      猜你喜欢
      • 2011-05-12
      • 2012-06-14
      • 1970-01-01
      • 1970-01-01
      • 2016-05-29
      • 2012-09-12
      • 2015-04-10
      • 1970-01-01
      相关资源
      最近更新 更多