在javascript中访问PHP变量

时间:2014-04-24 03:48:16

标签: javascript php

在我的控制器中,我以这种方式传递了一个数组图像:

$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']; ?>');

为什么?这不可能吗?

由于

3 个答案:

答案 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>';