PHP / jQuery Uncaught SyntaxError: Неожиданный токен ILLEGAL - PullRequest
1 голос
/ 27 июля 2011

У меня проблема с php и jQuery / Javascript ... Он не отображается или не может работать.

Мой код:

if($bottom_1_banner == "true"){
        //$data_AD .= '$(\'.ban_bottom\').html(\''.htmlentities($bottom_banner).'\').text();';
        $data_AD .= '$(\'.ban_bottom\').html("'.htmlspecialchars($bottom_banner).'").text();';
}

Журнал ошибок: (Chrome / Safari)

<script type="text/javascript">
    $(document).ready(function() {
        $('.ban_bottom').html("&lt;!-- xxxxxxx --&gt;
******index.php:11 Uncaught SyntaxError: Unexpected token ILLEGAL******
            &lt;script type=&quot;text/javascript&quot;&gt;
            xxxxxxx_bid = &quot;xxxxxxxxxxx&quot;;
            &lt;/script&gt;
            &lt;script type=&quot;text/javascript&quot; src=&quot;http://xxx.xxxxxx.com/k.js&quot;&gt;&lt;/script&gt;
            &lt;!-- xxxxxxxx --&gt;").text();    });
</script>

OR

Error Log

Отредактировано: преобразованное изображение в текст.

Ответы [ 5 ]

1 голос
/ 20 апреля 2012

У меня была такая же проблема с новой строкой в ​​JavaScript.Если вы получаете значение из MySql, вы можете попробовать это:

$php_string = str_replace('<br />','<br />\\',nl2br($php_string));

Сначала замените разрыв строки тегом html <br/>, а затем добавьте \ после созданного тега <br/>;Таким образом, строка JS всегда заканчивается символом \, что указывает на правильную новую строку в коде JavaScript.

0 голосов
/ 27 июля 2011

Эта строка кода работает безупречно.Я предполагаю, что это проблема кодировки файла с .php-файлом.Проверьте плохих персонажей.

0 голосов
/ 27 июля 2011

Может быть

$data_AD .= '$(\'.ban_bottom\').html("'.$bottom_banner.'").text();';

...

<?php echo str_replace('\n', '\\n', $data_AD); ?>

убрать разрывы строк?

0 голосов
/ 27 июля 2011

Избавьтесь от новых строк в HTML. Javascript не понимает строки в несколько строк. Вы также можете заменить \ n на \ \ n:

Это не работает:

var a = "This is a
string for me";

Это работает

var a = "This is a \
string for me";

или

var a = "This is a string for me";
0 голосов
/ 27 июля 2011

Исходя из приведенного выше кода, одна вещь наверняка, вам нужно определить $data_AD переменную перед использованием .= или просто использовать = без .

...