使用ajax和codeigniter添加数据

问题描述 投票:1回答:2

我是Codeigniter的新手我在发送数据时尝试使用ajax在表用户中添加数据,但是现在我遇到了问题,所有数据都发送良好,但是数据库中没有存储数据这是我的代码控制器

public function addusersajax()
{
    if($this->input->post("action") =="addusersintable")
    {
        $this->load->helper('date');
        $data=array(
            "fullname"=> $this->input->post("fullname"),
            "username"=> $this->input->post("username"),
            "password" => md5($this->input->post("password")),
            "email"=>$this->input->post("email"),
            "groubid"=>$this->input->post("groubid"),
            "date"=>mdate('%Y-%m-%d ', now()),
            "time"=>date(" H:i:s")
        );
        $this->load->model("usersmodel");
        if($this->usersmodel->adduserbyajax($data)){
            echo "done";
        }else{
            echo 'failed';
        }
    }
}

这是视图形式的功能

public function view()
{
    $data['pagetitle']="xx";
    $this->load->view("template/admin/header",$data);
    $this->load->view("users/ss",$data);

    $this->load->view("template/admin/footer");
}

这是我的观点

<div class="container">
    <div id="container">

        <div class="col-lg-8">
            <form id="insercodegn"  method="post"  action="" enctype="multipart/form-data">
                <div class="form-group">
                    <label for="recipient-name" class="control-label">Full Name :</label>
                    <input type="text" class="form-control"  name="fullname" id="fullname" placeholder="please insert fullname" autocomplete="off" required="required">

                </div>
                <div class="form-group">
                    <label for="recipient-name" class="control-label">UserName :</label>
                    <input type="text" class="form-control"  name="username" id="username" placeholder="please insert user name" autocomplete="off" required="required" >
                </div>
                <div class="form-group">
                    <label for="message-text" class="control-label">Password:</label>
                    <input type="password" class="form-control"  name="password" id="password" placeholder="please insert yout password" autocomplete="new-password" required="required" >
                    <i class=" showpass fa fa-eye fa-3" aria-hidden="true"></i>
                </div>
                <div class="form-group">
                    <label for="recipient-name" class="control-label">Email :</label>
                    <input type="text" class="form-control"  name="email" id="email" placeholder="please insert email" autocomplete="off" required="required" >
                </div>
                <div class="form-group">
                    <label for="recipient-name" class="control-label">User Type :</label>
                    <select class="form-control" name="groubid"  id="groubid">
                        <option value="1">Administartor</option>
                        <option value="0">User</option>
                        <option value="2">Maker</option>
                        <option value="3">cheker</option>

                    </select>
                </div>
                <div class="form-group">
                    <label for="exampleInputFile">Image :</label>

                </div>
                <input type="submit" name="action" value="adduserssss">
                <button type="submit"   name="action" value="addusersintable" class="btn btn-primary">addcc</button>
            </form>
        </div>
    </div>
</div>

****这是我的SS视图页面中的脚本****

 <script>
        $(document).ready(function () {
            $(function () {
                $("#insercodegn").on('submit', function (e) {

                    e.preventDefault();

                    $.ajax({

                        url:'<?php echo base_url()?>Users/addusersajax',
                          //url:"<?php echo base_url() .'Users/addusersajax'?>",

                        method:'post',
                        data: new FormData(this),
                        contentType: false,
                        cache: false,
                        processData: false,
                        success:function(data)  {
                            alert(data);
                        }
                    })
                })
            })
        })

    </script>

我的形式是

<div class="container">
    <div id="container">

        <div class="col-lg-8">
            <form id="insercodegn"  method="post"  action="" enctype="multipart/form-data">
                <div class="form-group">
                    <label for="recipient-name" class="control-label">Full Name :</label>
                    <input type="text" class="form-control"  name="fullname" id="fullname" placeholder="please insert fullname" autocomplete="off" required="required">

                </div>
                <div class="form-group">
                    <label for="recipient-name" class="control-label">UserName :</label>
                    <input type="text" class="form-control"  name="username" id="username" placeholder="please insert user name" autocomplete="off" required="required" >
                </div>
                <div class="form-group">
                    <label for="message-text" class="control-label">Password:</label>
                    <input type="password" class="form-control"  name="password" id="password" placeholder="please insert yout password" autocomplete="new-password" required="required" >
                    <i class=" showpass fa fa-eye fa-3" aria-hidden="true"></i>
                </div>
                <div class="form-group">
                    <label for="recipient-name" class="control-label">Email :</label>
                    <input type="text" class="form-control"  name="email" id="email" placeholder="please insert email" autocomplete="off" required="required" >
                </div>
                <div class="form-group">
                    <label for="recipient-name" class="control-label">User Type :</label>
                    <select class="form-control" name="groubid"  id="groubid">
                        <option value="1">Administartor</option>
                        <option value="0">User</option>
                        <option value="2">Maker</option>
                        <option value="3">cheker</option>

                    </select>
                </div>
                <div class="form-group">
                    <label for="exampleInputFile">Image :</label>

                </div>
                <button type="submit"   name="action" value="adduserssss" class="btn btn-primary">add</button>
            </form>
        </div>
    </div>
</div>
php ajax
2个回答
1
投票

更改此:

<input type="submit" name="action" value="adduserssss">
<button type="submit"   name="action" value="addusersintable" class="btn btn-primary">addcc</button>

为此:

<input type="hidden" name="action" value="addusersintable">
<button type="submit" class="btn btn-primary">addcc</button>

按钮没有$_POST数据,因此:if($this->input->post("action") =="addusersintable")总是评估为false,并且从未触及您的模型。隐藏的输入是您要寻找的。


1
投票

1)在JavaScript文件中使用小写字母url,请尝试使用“ users / addusersajax”,而不是“ Users / addusersajax”。

2)在控制器中使用var_dump($ _ POST)或print_r($ _ POST)。在Chrome或Firefox的网络标签中,查看请求结果。您必须查看发布的内容。如果一切都很好,则必须检查您的模型

3)在您的模型中,最好使用事务。请参阅Codeigniter用户指南中的交易文档。您也可以回显$ this-> db-> last_query()来查看执行了什么查询。复制执行的查询并从phpMyAdmin或您使用的任何其他MySQL客户端运行它,并查看是否出现任何错误。

© www.soinside.com 2019 - 2024. All rights reserved.