php - 将值传递给 Javascript 时出现引号问题

标签 php javascript

我正在使用类似

$myPage .= '<td><a href=\'javascript:editProduct('
    .$row['id']
    .',"'
    .$row['name']
    .'")\'>Edit</a></td>';

其中 $row['name'] 的值包含引号。它坏了。我如何从 php 端和 js 端解决这个问题...

$row['name'] 是来自数据库的值。它也将具有像 pradeep'spradeep"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/

相关文章:

php - 在 GoDaddy 服务器上发送电子邮件时出错 : Laravel 5. 1

javascript - 使用 indesign 脚本上传到 ftp 文件夹

javascript - 使用c3 js,有没有办法在放大时显示更多的x轴值?

javascript - 所有的 JavaScript 回调都是异步的吗?如果不是,我怎么知道哪些是?

php - 用php上传图片到数据库

javascript - 获取动态文本的值并将其传递给输入值

php - 如何将友好的 url 转换为原始 url

javascript - 未捕获的类型错误 : Object has no method 'contains'

javascript - 将 div 缩放到背景图像高度

php - 如何在 codeigniter 中编写包含 OR、AND、LIKE 的自定义查询