将php变量从控制器传递给javascript函数

时间:2014-04-02 21:04:18

标签: javascript php codeigniter

我无法将代码点火器控制器中的变量传递给javascript变量

我有一个控制器,它运行一个模型来返回一个数字

$tot_count = $this->model_users->tot_count();

在视图的标题中,我试图获取$ tot_count的值。我尝试了几件事,但我无法将值传递为

$(document).ready(function(){
    var total_count = <?php $tot_count;?>

        alert("Value: " + total_count);
    });

但什么都没有,请帮忙!

5 个答案:

答案 0 :(得分:2)

<?php echo $tot_count;?>
你没有回应任何事情。你需要使用echo或任何向输出发送内容的指令。

答案 1 :(得分:1)

可能是一个愚蠢的建议,但尝试在变量声明后加一个分号:

var total_count = <?php $tot_count;?>;

如果您没有关闭它,那么可能会将警报分配给变量..

答案 2 :(得分:1)

有很多方法可以做到这一点。

1.您可以使用ajax直接从服务器请求变量。这样可以更好地分离图层。

2.您可以将控制器变量绑定到DOM元素并获取javascript中的值。

<input type="hidden" id="total_count" value="{{ total_count }}" />
var total_count = $("#total_count").val();

此操作很快,因为您可能不希望每次都显式发送变量请求。

3.或直接在js变量中回显

var total_count = <?php echo $total_count; ?>; 

虽然这种方法很简单,但它会将表示层与控制器紧密绑定,并且不安全。

答案 3 :(得分:0)

尝试

var total_count = '<?php echo $tot_count;?>';

而不是建议的

var total_count = <?php $tot_count;?>;

答案 4 :(得分:0)

我已经解决了这个问题,希望这对将来的某个人有用。

您可以考虑的另一种方法是将Javascript所需的变量添加到视图中的某种HTML元素,然后使用JS拉取该变量,然后随意执行任何操作。

从控制器回显div id =&#39; demo&#39;而不是从Javscript电话。

var total_count = 0;     total_count = document.getElementById(&#34; demo&#34;)。innerHTML;     document.getElementById(&#34; demo&#34;)。innerHTML =&#39;&#39 ;; //这不显示值,而是捕获到Javscript变量并使用它,而不是从控制器的回显值中显示。

那就是它!