在我的控制器中,我以这种方式传递了一个数组图像:
$this->load->model('site_model');
$data['images'] = $this->site_model->fetch_images();
$data['main_content'] = 'my_view';
$this->load->view('includes/template', $data);
所有要知道的事情都是完美的,甚至我可以在我的视图中看到以下内容,其中显示了第一个元素的路径:
echo $images[0]['path'];
但是在脚本中,我试图执行以下操作,Uncaught SyntaxError: Unexpected token ILLEGAL"
alert('<?PHP echo $images[0]['path']; ?>');
为什么?这不可能吗?
由于
答案 0 :(得分:0)
试试这个
alert("<?php echo $images[0]['path'] ?>");
或尝试将php变量放入Javascript变量
这样做只是:
var data = "<?php echo $images[0]['path'] ?>";
alert(data);
喝彩!
答案 1 :(得分:0)
您输出的路径包含反斜杠,它在JavaScript字符串中开始一个&#34;转义序列&#34; - 基本上是一个字符的典型表示,否则你将无法输入字符串。但是,当他们看起来裸露在一根绳子里时,JS经常会对它们嗤之以鼻。
不要直接回显路径,而是试试这个:
alert(<?= json_encode($images[0]['path']) ?>);
这将使PHP格式化文本的方式可以减少JS中的问题。
(在PHP的某些版本和配置中,<?=
可能不起作用。您可以在其位置使用<?php echo
;它执行相同的操作。它只是更啰嗦。:P)
答案 2 :(得分:-2)
尝试以这种方式通过JavaScript提醒存储到$ path变量
$path = echo $images[0]['path'];
现在您将此$ path打印到警告框
echo '<script type="text/javascript"> alert("' . $path . '");</script>';