我正在使用类似
$myPage .= '<td><a href=\'javascript:editProduct('
.$row['id']
.',"'
.$row['name']
.'")\'>Edit</a></td>';
其中 $row['name']
的值包含引号。它坏了。我如何从 php 端和 js 端解决这个问题...
$row['name']
是来自数据库的值。它也将具有像 pradeep's
和 pradeep"s
一样的值(value)
我用过像
$myPage .= '<td><a href=\'javascript:editProduct('.addslashes($row['id']).',"'.addslashes($row['name']).'")\'>Edit</a></td>';
它解决了双引号的问题。但是当我的值有单引号时,javascrit 链接看起来像
javascript:editProduct(28,"pradeep\
它实际上坏了..
如何去掉 JavaScript 中的addslashes 添加的斜杠..
更新 - 最终代码
$myPage .= '<td><a href=\'javascript:editProduct('.$row['id'].',"'.htmlentities($row['name'],ENT_QUOTES).'")\'>Edit</a></td>';
和 js 看起来像
function editProduct(id,name){
alert(name);
}
谁能解决我的问题
最佳答案
尝试:
$myPage .= "<td><a href='javascript:editProduct({$row['id']},\""
. htmlentities( $row['name'] )
. "\")'>Edit</a></td>";
htmlentities
默认行为是转换双引号并保留单引号,如果您需要转换单和双引号,则这样调用:
htmlentities( $row[ 'name' ], ENT_QUOTES )
此外,在 "..."
字符串中使用 { .. }
是替换变量的正确方法。
关于php - 将值传递给 Javascript 时出现引号问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5879628/