我想调用函数onclick,但是使用这样的json_encode参数:
<a href="#" onclick="javascript:table1Modif(<?php echo substr(json_encode($res['base']),1,-1); ?>);return false;">
Jquery函数只是提醒参数:
<script>
function table1Modif(key){
$('#table1').html(function() {
alert(key);
});
}
</script>
但我有一个“未定义”的错误! 我确信这是由于json_encode,但我不知道如何解决它。 谢谢!
答案 0 :(得分:3)
看起来您要将字符串传递给json_encode
以生成JavaScript字符串文字(无效的JSON)。
您正在使用substr
删除此字符串中的引号。
你需要一个字符串文字,所以首先要做的是删除子调用。
这会产生一个新问题。您将字符串插入HTML文档,但不将其表示为HTML。因此,字符串文字开头的"
字符将被视为属性值的结尾,这是您不想要的。
将非HTML内容插入HTML文档时,需要将其表示为HTML。通过htmlspecialchars
函数运行代码来执行此操作。
onclick="table1Modif(<?php
echo htmlspecialchars(
json_encode($res['base'])
);
?>);return false;"
我很自然地删除了完全没用的javascript:
label。您没有来自break
或continue
的循环,因此它无法执行任何操作。当你了解它时,你应该用更明智的东西取代href="#"
。遵循Progressive Enhancement和Unobtrusive JavaScript的原则。