Апострофы выдают с помощью php и jscript

0

У меня есть эта часть кода, которая не работает, я не мог найти, где проблема?

$texttt = "blabla";
    echo "<div onclick='select(\" page d \' accueil \");'>".$texttt."</div><br/>";
function select(text){
      alert(text);          
}
Теги:

4 ответа

3
Лучший ответ

"нарушает ваш оператор php

echo "<div onclick=\"select(' page d\' accueil ');\">\"Page d'accueil\"</div><br/>";



function select(text){
      alert(text);          
}

попробуйте использовать addslashes и htmlentities, чтобы избежать кавычек между текстом

$texttt = htmlentities(addslashes($text), ENT_QUOTES); 

echo "<div onclick='select(\"$texttt\");'>$texttt</div><br/>";
  • 0
    Я изменил это, но все еще не работает ??
  • 0
    Когда я ставлю простую строку без апострофов, все работает нормально. Я изменил текст внутри div, чтобы я мог уменьшить проблемы.
Показать ещё 6 комментариев
1

Используйте одинарные кавычки для PHP. Я использую одинарные кавычки для PHP (который является сценарием на стороне сервера) и двойные кавычки для сценариев на стороне клиента, если это не обязательно.

echo '<div onclick="select(\'page d\'accueil\');">"Page d\'accueil"</div><br/>';

проблема связана с одинарной цитатой в d'accueil:

Я не знаю, возможно ли избежать строки, которая находится в другой экранированной строке.

Возможности:

  • Вы можете изменить правила грамматики своего языка:
    • Влияет на слишком много людей.
    • Непригодный.
  • Вы можете изменить способ ввода одиночной кавычки: using &#39; в контексте.

Я набрал для вас новый код (который хорошо работает):

<?php
    echo '<div onclick="select(this.innerHTML);">"Page d&#39;accueil"</div><br/>';
?>
<script>
function select(text){
      alert(text);          
}
</script>
  • 0
    Он также работает с двойными кавычками, ему просто не нужно избегать их.
  • 0
    Я сделал это, но все еще не работает !!
0

вы можете использовать синтаксис синтаксиса heredoc: http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

    echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should print a capital 'A': \x41
EOT;

также попробуйте следующее:

echo json_encode("<div onclick='select(" page d ' accueil ");'>{$texttt}</div><br/>");
0

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

"Page d'accueil" не обязательно должна быть между кавычками, поэтому удалите их.

Используйте один вид (одиночные или двойные кавычки) для первого уровня цитирования, а другой для следующих уровней и держите его в уме.

<? php echo '<div onclick="select(\" page d\' accueil \");">Page d\'accueil</div><br/>'; ?>


<script type="text/javascript">
    function select(text){
        alert(text);          
    }
</script>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню