如何在codeigniter中将ajax变量值传递给控制器

时间:2015-08-17 06:42:58

标签: javascript ajax codeigniter

在这里,我想通过' q'在codeigniter中从ajax到控制器函数的值。

ajax code:   
function getdata(str) 
    {
        if (str == "") {
            document.getElementById("yer").innerHTML = "";
            return;
        } else { 
            if (window.XMLHttpRequest) {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            } else {
                // code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById("bus").innerHTML = xmlhttp.responseText;
                }
            }
            xmlhttp.open("GET","<?php echo site_url('money_c/taxcalculator1'); ?>?q="+str,true);
            xmlhttp.send();
               window.location="<?php echo site_url('money_c/taxcalculator'); ?>"

        }
    }
controller:

    function taxcalculator1()
            {
                $bt=$_GET['q'];
                echo $bt;
            }

在这里,我想通过&#39; q&#39;在codeigniter中从ajax到控制器函数的值。

1 个答案:

答案 0 :(得分:0)

一旦你用这个开始发送Ajax请求:

xmlhttp.send();

离开页面

window.location="<?php echo site_url('money_c/taxcalculator'); ?>"

...中止Ajax请求,删除您尝试使用innerHTML编辑的位置,并销毁将尝试执行此操作的JavaScript。

如果你想使用Ajax,那么:

  • 将要显示的数据放入用户taxcalculator1
  • 的回复中
  • 使用onreadystatechange向用户显示
  • 在此之前不要离开页面(删除window.location行)。

如果您想加载一个全新的页面:

  • 不要使用Ajax
  • 只需将表单提交到网址
  • 即可
  • 在对该请求的回复中显示您希望用户看到的数据(以HTML文档的形式)