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

将php变量从控制器传递到javascript函数,javascript,php,codeigniter,Javascript,Php,Codeigniter,我无法将变量从CodeIgniter控制器传递到javascript变量 我有一个控制器,它运行一个模型来返回一个数字 $tot_count = $this->model_users->tot_count(); 在视图的标题中,我试图得到$tot_count的值。我尝试了几种方法,但无法将值作为 $(document).ready(function(){ var total_count = <?php $tot_count;?> alert("

我无法将变量从CodeIgniter控制器传递到javascript变量

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

$tot_count = $this->model_users->tot_count();
在视图的标题中,我试图得到$tot_count的值。我尝试了几种方法,但无法将值作为

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

        alert("Value: " + total_count);
    });
$(文档).ready(函数(){
变量总计数=
警报(“值:”+总计数);
});
但是什么也得不到,请帮忙


<?php echo $tot_count;?>

你什么也没说。您需要使用echo或任何向输出发送内容的指令。

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

var total_count = <?php $tot_count;?>;
var总计数=;
如果您不关闭它,则该警报可能已分配给变量。

请重试

var total_count = '<?php echo $tot_count;?>';
var总计数=”;
而不是建议的

var total_count = <?php $tot_count;?>;
var总计数=;

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

您可以考虑将JavaScript所需的变量添加到视图中的某种HTML元素中,然后使用JS来拉动该变量,然后用它做任何您需要的。 从控制器回显

div id='demo'
中的值,然后从Javscript调用回显

var total_count = 0;
total_count = document.getElementById("demo").innerHTML; 
document.getElementById("demo").innerHTML = ''; 
// this is to not display the value but to capture into a Javscript variable and use it and not display from echoed value from controller.

就这样

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

1.您可以使用ajax直接从服务器请求变量。这提供了更好的层分离

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

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

var total_count=$(“#total_count”).val();
此操作速度很快,因为您可能不希望每次都显式发送变量请求

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

var total_count = <?php echo $total_count; ?>; 
var总计数=;

尽管这种方法很简单,但它将表示层与控制器紧密绑定,而且不安全。

它是否有助于
var total\u count=''
var-total\u-count=
应该是
var-total\u-count=
我已经尝试了回显,但它也不起作用var-total\u-count=;警报(“值:”+总计数);我还尝试了var total_count='';但它不起作用。是因为我在使用我已经尝试了回音,但它也不起作用,当我使用回音时,系统不会发出警报消息,如果我不使用回音,至少我会得到一个弹出警报,但没有值PasseEdit不起作用,因为你肯定在某个地方有错误,尝试回音一个数字,而不是一个变量,看看它是否起作用。是的,但不将变量值从控制器传递到javascript变量。这些语法无法获取值。我使用抱歉,我已经尝试了这是不工作也,我看到你需要单或双报价,以获得警报工作,否则没有警报弹出窗口也显示。var总计数=“”;当我从控制器回显值时,可以清楚地看到分配给它的像22这样的数字,但它无法传递给Javascript变量:(如果
$tot_count
是一个整数,引号(
)将把它转换成字符串。小心不要仅仅为了保存数据而创建额外的元素——这是可以避免的DOM膨胀。