在codeigniter视图中将action设置为null时,表单被重定向到base_url

时间:2015-04-27 23:19:39

标签: html forms codeigniter

我提交下面的表格,它处理控制器中的代码,但处理后重定向到我的基本网址。此外,我没有在我的控制器功能中使用任何重定向。为什么在动作为空时重定向到我的base_url?

这是我的表单代码

<form action="" class="form-horizontal contact-1"  role="form" method="post" id="contactform">
        <input type="hidden" name="operation" value="newquery">
            <div class="form-group">
            <div class="col-sm-6">
            <input type="text" class="form-control"  name="name" id="name" placeholder="Name">
            </div>
            <div class="col-sm-6">
            <input type="text"  class="form-control" name="email" id="email" placeholder="Email">
            </div>
            </div>
            <div class="form-group">
              <div class="col-sm-12">
              <input class="form-control" id="subject" type="text" name="subject" placeholder="Subject">
              <textarea name="message" type="text" id="msg" class="form-control textarea" cols="30" rows="5" placeholder="Message"></textarea>
              <button type="submit" id="contsub" class="btn btn-primary btn-block contact-1-button"   data-loading-text="Sending" ><i class="fa  fa-send"></i>  Send Message</button>

            </div>
            </div>
</form>

这是我的ajax电话

    <script>
            $(document).ready(function() {
                $("#contsub").click(function() {
                    var name = $("#name").val();
                    var email = $("#email").val();
                    var subject = $("#subject").val();
                    var msg = $("#msg").val();
                    if (name == '' || email == '' || subject == '' || msg == '') {

                    } else {
                        // Returns successful data submission message when the entered information is stored in database.
                        $.post("contactform.php", {
                            name: name,
                            email: email,
                            subject: contact,
                            msg: msg
                        }, function(data) {
                            alert(data);
                            $('#form')[0].reset(); // To reset form fields
                        });
                    }
                });
            });
        </script>

我无法弄清问题是什么?

2 个答案:

答案 0 :(得分:0)

1.如果您将表单操作设置为空,表单将提交到其当前url.so查看您的浏览器当前URL并且我认为它与您的base_url相同。
2.如果您点击contsub按钮,您的javascript $("#contsub").click(function()将无法完美执行,因为当您点击此按钮时,它也会提交表单并重定向到操作网址。更改您的{{1} } <button type="submit"所以它不会提交表单,你的javascript就可以了。

答案 1 :(得分:0)

<script>
        $(document).ready(function() {
            $("#contsub").click(function(e) {
                e.preventDefault();
                var name = $("#name").val();
                var email = $("#email").val();
                var subject = $("#subject").val();
                var msg = $("#msg").val();
                if (name == '' || email == '' || subject == '' || msg == '') {

                } else {
                    // Returns successful data submission message when the entered information is stored in database.
                    $.post("contactform.php", {
                        name: name,
                        email: email,
                        subject: contact,
                        msg: msg
                    }, function(data) {
                        alert(data);
                        $('#form')[0].reset(); // To reset form fields
                    });
                }
            });
        });
    </script>

按下按钮会导致表单提交,将您重定向到当前位置。添加e.preventDefault();将阻止这种情况发生。