首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >传递给javascript函数的PHP数组什么也不做

传递给javascript函数的PHP数组什么也不做
EN

Stack Overflow用户
提问于 2014-10-07 14:22:45
回答 3查看 64关注 0票数 0

我有一个使用"json_encode($array)“传递给js函数的php数组,问题是当我单击按钮来触发该函数时,除了页面刷新之外什么也不会发生。

我认为问题可能是随信附上的引文,虽然我已经试着从双首改为单曲和反面,而不是joy。

HTML:

代码语言:javascript
运行
复制
 <button class="button1" 
  onclick="validateEncomenda('<?php echo json_encode($chosen_restaurant_addr);?>');
           return false;">Encomendar</button>

联署材料:

代码语言:javascript
运行
复制
function validateEncomenda(myarray){
   alert('Hello JS');
  }

如果我响应"json_encode($chosen_restaurant_addr)“,我将得到正确的值,格式如下:

"ipsum lorem blah blah","Curabitur aliquam feugiat tellus“

任何帮助或暗示都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-07 14:30:52

您应该转义PHP输出中的引号。由于HTML引号不能转义,请按以下方式重写:

代码语言:javascript
运行
复制
onclick='validateEncomenda("<?php echo addslashes(json_encode($chosen_restaurant_addr)); ?>"); return false;'>
票数 1
EN

Stack Overflow用户

发布于 2014-10-07 14:31:39

处理此问题的更好方法是将onclick处理与HTML源分离。您可以创建这样的脚本:

代码语言:javascript
运行
复制
var chosenResturant = <?php echo json_encode($chosen_restaurant_addr);?>;
document.getElementById('button1').onclick = function() {
    // no need to parse JSON here as we created an array literal above
    alert(chosenRestaurant.length);
    return false;
};

请注意,我假设您将id button1添加到元素中,作为确定哪些元素获取事件处理程序的方法。如果您真的想用button1的类名将此行为附加到所有元素,则只需替换getElementsByClassName('button1')而不是getElementById('button1')

票数 2
EN

Stack Overflow用户

发布于 2014-10-07 14:28:01

我认为您应该为按钮添加新属性:type=“按钮”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26238278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档