无法从带括号的数据生成Javascript

时间:2011-04-19 16:26:26

标签: php javascript

我正在使用PHP / MySQL连接向我的网站添加搜索建议功能。这一切都在工作,除了一件。我的数据都包含值中的括号,所以当我试图将返回的数据传递给输入字段时,我的onclick函数失败了!代码如下:

while ($result = $query->fetch_object()) {
            echo '</li><li onclick="fill(\''.$result->name.'\');">'.$result->name.'</li>';
        }

列表从返回的搜索结果中填充,但返回的查询如下所示:

</li><li onclick="fill('Boire Field&#44; Nashua&#44; NH&#44; US (KASH)');">
Boire Field&#44; Nashua&#44; NH&#44; US (KASH)</li>

Firebug给了我以下内容:

unterminated string literal
    fill('Boire Field, Nashua, NH, US (KASH)

结果中的)过早地结束了字符串。我怎样才能将其排除在外以便正确调用函数?

1 个答案:

答案 0 :(得分:1)

正如布拉德所建议的那样..最好的方法是JSON_ENCODE

while ($result = $query->fetch_object()) {
            echo '</li><li onclick="fill(\''.json_encode($result->name).'\');">'.$result->name.'</li>';
        }