не удалось показать $ this-> validation-> error_string - PullRequest
0 голосов
/ 14 ноября 2010

Здравствуйте, это моя функция загрузки: -

  $(function() {
            <?php if( isset ($this->validation->error_string) && $this->validation->error_string != '') {?>
                str = '<?php echo $this->validation->error_string;?>';
                alert(str);
            <?php }?>
        });

И я всегда получаю эту ошибку: -

unterminated string literal
    str = '<p>The Username field is required.</p>\n

Даже при наличии ошибок проверки я всегда получаю эту ошибку в firebug,Однако, когда я просто отображаю его в теге body, он работает нормально.Как мне решить это?

Заранее спасибо :))

1 Ответ

4 голосов
/ 14 ноября 2010

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

$(function() {
  <?php if( isset ($this->validation->error_string) && $this->validation->error_string != '') {?>
  var str = '<?php echo json_encode($this->validation->error_string);?>';
  alert(str);
  <?php }?>
});

Строки JavaScript не могут занимать строки ... вы получите ошибку "неопределенный литерал строки", именно то, что вы видите. Кроме того, используйте var, чтобы не создавать глобальные переменные, или вообще не используйте переменные, например:

$(function() {
  <?php if( isset ($this->validation->error_string) && $this->validation->error_string != '') {?>
  alert('<?php echo json_encode($this->validation->error_string);?>');
  <?php }?>
});

Еще одно примечание: поскольку вы предупреждаете об этом, вы, вероятно, захотите удалить оболочку <p></p>, поскольку она также будет отображаться в alert().

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