onclick函数

时间:2017-07-15 09:32:21

标签: javascript php

大家好,我已经讨论了很多关于双qoutes变量的问题。但我不知道为什么那些不适合我。 我的情况是这个

onclick="cBack(this.form,{$pageurl},{$token})"

我的页面中有这种代码..当点击按钮时它会调用一个函数。但在我的情况下它不能正常工作。它在我的控制台中显示了一个引用错误..

我的回调函数

function cBack(frm,pageurl,token)
  {

    pageurl=pageurl.trim(); 
    frm.method="post";
    frm.action=pageurl+'?gtoken='+token;
    frm.submit();  

}

帮我解决这个问题..

2 个答案:

答案 0 :(得分:1)

$pageurl$token是字符串,需要这样的引号:

onclick="cBack(this.form,'{$pageurl}','{$token}')"

使用普通的PHP并且没有模板引擎:

onclick='cBack(this.form,<?php echo json_encode($pageurl) ?>, <?php echo json_encode($token) ?>)'

注意我切换到单引号,因为json_encode将使用双引号。无论变量的内容如何,​​这都会产生保存(均值编码)JavaScript参数。

答案 1 :(得分:0)

我不会使用内联事件处理程序。我会有这样一个元素:

echo '<button data-page-url="' . $pageurl . '" data-token="' . $token . '">Do something</button>';

在JavaScript代码中,为具有data-page-url属性的所有元素注册事件侦听器:

Array.from(document.querySelector('[data-page-url]')).forEach(function (element) {
  element.addEventListener('click', cBack.bind(
    null, 
    element.form, 
    element.getAttribute('data-page-url'),
    element.getAttribute('data-token')
  ));
});