通过onclick将带单引号的字符串传递给javascript函数

问题描述 投票:0回答:3

I具有这个按钮与一个onclick调用函数。 appr()上的值是从PHP变量动态生成的,因此值会更改。

return "<button type='button' onclick='appr(".$id.",\"".$qr['name']."\");'>Approve</button>";

哪个结果:

<button type='button' onclick='appr(3,"Dave O'Shea");'>Approve</button>

javascript函数如下所示。

function appr(id,name){
  // some code here...
  alert(name);
}

除了单引号引起故障的字符串外,该代码工作正常。任何想法,为什么?

javascript php function quotes
3个回答
0
投票

更改:

return "<button type='button' onclick='appr(".$id.",\"".$qr['name']."\");'>Approve</button>";

收件人:

return '<button type="button" onclick="appr('.$id.',"'.$qr['name'].'");">Approve</button>';

0
投票

你一定要逃逸[C0报价],您可以用$qr['name']做:

addslashes

0
投票

在代码中,单引号表示属性界限:

addslashes

所以第return "<button type='button' onclick='appr(".$id.",\"".addslashes($qr['name'])."\");'>Approve</button>"; 附带之后将完成的属性值。

您可以通过更换[C0修复它] S与HTML实体结果在引号代替,使得所生成的HTML出来至

onclick='appr(
        ^

'

但是,这将是更好的,以避免内联处理完全和使用Javascript添加听众来代替。

© www.soinside.com 2019 - 2024. All rights reserved.