Выход из цитаты в JavaScript и PHP - PullRequest
0 голосов
/ 04 ноября 2011
<?php
    /* ... Getting record from database */

    $comment = $record["comment"];
    /* There might be quotes or double quotes, we don't know */

    echo "<input type='button' onclick=\"doSomething('$comment')\" />";
?>

<script>
    function doSomething(comment) {
        alert(comment);

        /* Something else */
    }
</script>

Когда строка комментария $ содержит одну кавычку, я получаю сообщение об ошибке " Uncaught SyntaxError: Unnexpected token ILLEGAL " в javascript.

  • Я добавляю косую черту передкавычки, это не сработало - $comment = str_replace("'","\'",$comment);

Как я могу избежать кавычки и двойной кавычки в этом примере?

Ответы [ 3 ]

9 голосов
/ 04 ноября 2011

Используйте json_encode () , что гарантирует, что ваш вывод будет синтаксически верным кодом JavaScript:

<input type="button" onclick="doSomething(<?php echo json_encode($comment) ?>">
1 голос
/ 04 ноября 2011

Используйте функцию PHP addlashes () .

0 голосов
/ 04 ноября 2011

Вы можете попробовать что-то вроде этого в Javascript:

function addslashes(str){
    str=str.replace(//g,'\');
    str=str.replace(/'/g,''');
    str=str.replace(/"/g,'"');
    str=str.replace(//g,'');
    return str;
}
function stripslashes(str){
    str=str.replace(/'/g,''');
    str=str.replace(/"/g,'"');
    str=str.replace(//g,'');
    str=str.replace(/\/g,'');
    return str;
}

Надеюсь, эта помощь:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...