繁体   English   中英

尝试在 codeigniter 中使用 ajax 提交表单

[英]Trying to submit form using ajax in codeigniter

我正在尝试使用 ajax 提交表单,但它总是出错并且数据未提交到数据库中。 请看一下我的代码。 我对此进行了搜索,但实际上没有得到任何解决方案,我是 Codeigniter 的新手,对此并没有太多了解。 我非常感谢有人帮助我解决此错误,谢谢。

jQuery / AJAX 代码:

 <script>


    $(document).ready(function(){
        $("#personal-info").submit(function(e){
            e.preventDefault();
            var fname = $("#fname").val();;
            var email_address= $("#email_address").val();
            var comment= $("#comment").val();
            $.ajax({
                type: "POST",
                url: '<?= site_url('Book/contact')?>',
                data: {fname:fname,email_address:email_address,comment:comment},
                success:function(data)
                {
                     Swal.fire({
                  position: 'top-end',
                  icon: 'success',
                  title: 'Message send successfuly',
                  showConfirmButton: false,
                  timer: 1500
                });
                },
                error:function()
                {
                    Swal.fire({
                  position: 'top-end',
                  icon: 'error',
                  title: 'Message Sending Fale Please try again',
                  showConfirmButton: false,
                  timer: 1500
                });
                }
            });
        });
    });
</script>

看法:

<div class="row">
                    <div class="col-lg-5 offset-lg-6 col-md-12">
                        <div class="section-title v2">
                            <h2>Write to us</h2>
                        </div>
                        <form id="personal-info" action="" method="post">
                            <div class="form-control-wrap">
                                <div id="message" class="alert alert-danger alert-dismissible fade"></div>
                                <div class="form-group">
                                    <input type="text" class="form-control" id="fname" placeholder="Name*" name="fname" required>
                                </div>
                                <div class="form-group">
                                    <input type="email" class="form-control" id="email_address" placeholder="email*" name="email" required>
                                </div>
                                <div class="form-group">
                                    <textarea class="form-control" rows="8" name="comment" id="comment" placeholder="Your Message" required></textarea>
                                </div>
                                <div class="form-group">
                                    <button type="submit" id="send_form" class="btn v7">Send Message</button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>

Controller:

 public function contact()
    {
         $data = array(
            'name' => $this->input->post('fname'),
            'emall' => $this->input->post('email'),
            'message' => $this->input->post('message'),
          
        );
          $this->db->insert('contact',$data);
           echo json_encode($data);
    }

jQuery / AJAX 代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script type="text/javascript">

 $(document).ready(function(){
        $("form#personal-info").submit(function(e){
            e.preventDefault();
            var fname = $("#fname").val();
            var email_address= $("#email_address").val();
            var comment= $("#comment").val();
            $.ajax({
                type: "POST",
                url: "<?php echo site_url('Book/contact')?>",   // Add echo.
                dataType : "JSON",
                data: {fname:fname,email_address:email_address,comment:comment},
                success:function(data)
                {
                     Swal.fire({
                  position: 'top-end',
                  icon: 'success',
                  title: 'Message send successfuly',
                  showConfirmButton: false,
                  timer: 1500
                });
                },
                error:function()
                {
                    Swal.fire({
                  position: 'top-end',
                  icon: 'error',
                  title: 'Message Sending Fale Please try again',
                  showConfirmButton: false,
                  timer: 1500
                });
                }
            });
        });
    });
</script>

Controller:

public function contact()
    {
         $data = array(
            'name' => $this->input->post('fname'),
            'emall' => $this->input->post('email'),
            'message' => $this->input->post('message'),
          
        );
         $insertData = $this->db->insert('contact',$data);
           echo json_encode($insertData);
    }

您的 ajax 调用的数据email_address与 php 的$this->input->post('email')不匹配。
您的 url 查询正在像...&email_address=USER_INPUT那样在接收端不匹配,即:
...->post('email')它应该是..->post('email_address')并且comment字段作为comment发送但接收为..->post('message')这也是不正确的。

这应该工作

 public function contact()
{
     $data = array(
        'name' => $this->input->post('fname'),
        'emall' => $this->input->post('email_address'),
        'message' => $this->input->post('comment'),
      
    );
      $this->db->insert('contact',$data);
       echo json_encode($data);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM