Вам необходимо закодировать новые строки в выходных данных, чтобы он был действительным 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()
.