我有一个使用"json_encode($array)“传递给js函数的php数组,问题是当我单击按钮来触发该函数时,除了页面刷新之外什么也不会发生。
我认为问题可能是随信附上的引文,虽然我已经试着从双首改为单曲和反面,而不是joy。
HTML:
<button class="button1"
onclick="validateEncomenda('<?php echo json_encode($chosen_restaurant_addr);?>');
return false;">Encomendar</button>联署材料:
function validateEncomenda(myarray){
alert('Hello JS');
}如果我响应"json_encode($chosen_restaurant_addr)“,我将得到正确的值,格式如下:
"ipsum lorem blah blah","Curabitur aliquam feugiat tellus“
任何帮助或暗示都将不胜感激。
发布于 2014-10-07 14:30:52
您应该转义PHP输出中的引号。由于HTML引号不能转义,请按以下方式重写:
onclick='validateEncomenda("<?php echo addslashes(json_encode($chosen_restaurant_addr)); ?>"); return false;'>发布于 2014-10-07 14:31:39
处理此问题的更好方法是将onclick处理与HTML源分离。您可以创建这样的脚本:
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')。
发布于 2014-10-07 14:28:01
我认为您应该为按钮添加新属性:type=“按钮”
https://stackoverflow.com/questions/26238278
复制相似问题