dongrao9454 2012-11-01 07:50 采纳率: 100%
浏览 68

我的带有ajax的Codeigniter表单返回所有页面

In my project I user ajax to process form. Now i want to get Post data to process. I use Javascript when Jquery is not allowed. But Ajax return whole page, how can I fix that.

My controller :

class Form extends Controller {

    function __construct() {
        parent :: __construct();
        $this->load->model('Form_model');
    }

    function index() {
       $this->loadForm();

    }

    function loadForm() {
        $this->load->view('form_view');
    }

    function ajax_add_form_content() {

        if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == "XMLHttpRequest") {
            echo $_POST['fullname'] . '+' . $_POST['subject'];
        } else {
            echo '0';
        }
    }

}

And my view :

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Form view</title>

    <script language="JavaScript" type="text/javascript">


        function ajax_post(){

            var hr = new XMLHttpRequest();

            var url = "<?php echo base_url().'index.php/form/ajax_add_form_content'?>";
            var fn = document.getElementById("txtFullName").value;
            var ln = document.getElementById("txtSubject").value;
            var vars = "fullname="+fn+"&subject="+ln;
            hr.open("POST", url, true);

            hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

            hr.onreadystatechange = function() {
                if(hr.readyState == 4 && hr.status == 200) {
                    var return_data = hr.responseText;
                    document.getElementById("status").innerHTML = return_data;
                }
            }

            hr.send(vars); 
            document.getElementById("status").innerHTML = "processing...";
            return false;
        }

    </script>

</head>
<body>
    <div id="form">
        <span id='status' ></span>
        <form class="form" method="post">
            <p class="formName">contact</p>
            <p class="formDesc">contact us</p>
            <div class="form_elements">
                <div class="textField">
                    <label>Full name</label>
                    <input id="txtFullName" class="inputText required" type="text" maxlength="255" size="28" name="txtFullName">


                </div>

                <div class="textField">
                    <label>Subject</label>
                    <input id="txtSubject" class="inputText required" type="text" maxlength="255" size="28" name="txtSubject">


                </div>

            </div>
            <div class="form_submit">
                <input id="btnSubmit" type="submit" value="Send" name="btnSubmit" onClick="javascript:ajax_post();">
            </div>
        </form>
        <div id='display'>
        </div>

    </div>
</div>
</body>
</html>

Thanks for any help !

  • 写回答

2条回答 默认 最新

  • duanguo7021 2012-11-01 09:26
    关注

    Please try this

    in your controller

    function ajax_add_form_content() {
    
            if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == "XMLHttpRequest") {
                echo $_POST['fullname'] . '+' . $_POST['subject'];
            } else {
                echo '0';
            }
      exit;
        }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了