我无法将代码点火器控制器中的变量传递给javascript变量
我有一个控制器,它运行一个模型来返回一个数字
$tot_count = $this->model_users->tot_count();
在视图的标题中,我试图获取$ tot_count的值。我尝试了几件事,但我无法将值传递为
$(document).ready(function(){
var total_count = <?php $tot_count;?>
alert("Value: " + total_count);
});
但什么都没有,请帮忙!
答案 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变量并使用它,而不是从控制器的回显值中显示。
那就是它!