2014-09-30 37 views
0

在我的JavaScript中,我试图通过html名称标记传递一个php变量。 html被添加到我选择的选项中。jQuery中未识别的PHP变量

$("#a"+$selected.val()).append('<input type="hidden" name="<?php echo $event_id; ?>" value="'+$selected.text()+'">'); 

这里是整个JS功能上有什么http://laravel.io/bin/Edz25

去现在,我知道一个事实,在我看来,在测试了$事项标识是在做下面的返回一个数组我控制器,并在视图中回显变量。

print_r($event_id); 
die(); 

控制器:

$data['event_id'] = $this->model_location->get_event_id(); 

型号:

public function get_event_id() 
{ 

    $this->db->select('id'); 
    $query = $this->db->get('table_eventcards'); 

    return $query->result_array(); 


} 

现在我不知道为什么在我的javascript变量不输出任何东西。

这是检查元素时的输出。

<li data-value="28" id="a28">Event title<input type="hidden" name="<?php echo $event_id; ?>" value="Event title"></li> 

如果这会有所帮助,这是我的控制台日志http://postimg.org/image/owtz3v8h7/

我真的需要这个解决,感谢所有帮助。包含在HTML不会被PHP解析

+0

“$没有定义”。在运行脚本之前加载jQuery吗? – lesssugar 2014-09-30 19:47:03

+1

您确定该页面正在被PHP处理吗? – 2014-09-30 19:48:50

+0

@lesssugar该脚本位于加载jquery源代码的每个页面的页脚中。如果我所有的其他jQuery正在工作,我不认为这是会影响php变量的问题。 – Bobby 2014-09-30 19:50:39

回答

1

的.js文件,为做到这一点,你可以使用< script>标记,并写这个变量,例如:

首先,写你的变量在php文件:

mypage.php

<script> 
    var MY_VAR = "<?php echo $myVar; ?>"; 
<script> 
<script type="text/javascript" src="my_script.js"></script> 

然后你就可以在你的js文件中使用这个变量:

my_script.js

$("#a"+$selected.val()).append('<input type="hidden" name="' + MY_VAR + '" value="'+$selected.text()+'">'); 

甲测试例如:

<?php 
    $myVar = 1; 
?> 

<script> 
    var MY_VAR = "<?php echo $myVar; ?>"; 
    alert(MY_VAR); 
</script> 

警报输出将是 “1”

+0

我在php页面上添加了脚本标签。然后在我的.js页面中添加js变量。它仍然给出相同的输出将php变量作为字符串处理。 – Bobby 2014-09-30 20:13:29

+0

@Bobby我更新了一个测试的例子 – viniciuswebdev 2014-09-30 20:39:45

+0

将js变量设置为视图中的php变量传递给.js文件。然而,奇怪的是,警报不是在同一个视图上工作。 – Bobby 2014-09-30 21:19:21