weixin_33711647 2017-02-02 15:21 采纳率: 0%
浏览 4

Codeigniter和Jquery Ajax

I can not insert the data by forms in the database with ajax,There is no firebug error someone can help me

View:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Blog</title>
    <link rel="stylesheet" href="<?php echo base_url("assets/css/bootstrap.min.css"); ?>">
</head>
<body>
    <h3 style="text-align: center;">CODEIGNITER AJAX</h3>
    <div class="row">
        <div class="alert alert-success" id="message" style="display: none;">
        </div>
        <div class="col-md-4"></div>
        <div class="col-md-4">
            <?php echo form_open('blog_c',array('id'=>'myForm'));?>
                <div class="form-group">
                    <label>EMAIL:</label>
                    <input type="text" name="email" id="email" class="form-control" placeholder="EMAIL">
                </div>
                <input type="submit" value="ENVOYER" id="btn">
            <?php echo form_close()?>
        </div>
    </div>
    <script type="text/javascript" src="<?php echo base_url()?>assets/js/jquery-3.1.1.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){   
            $('#btn').click(function(){
                var email=$('#email').val();
                $.ajax({              //request ajax
                    url:"<?php echo site_url('blog_c/registre')?>",
                    type:POST,
                    data:{email:email},
                    dataType:json,
                     success: function(repons) {
                         $("#message").html(repons);
                        
                         },
                     error: function() {
                        alert("Invalide!");
                        }
                });
            });
        });
        
    </script>
</body>
</html>

Model:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Blog_m extends CI_Model
{
    function __construct()
     {
        parent:: __construct();
      }
     function registre($data)
    {
        $this->db->insert('utilisateurs',$data);
    } 

}

Controler:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Blog_c extends CI_Controller 
{
    public function __construct()
    {
        parent::__construct();
        
    }

    public function index()
    {
        $this->load->view('blog_w');
    }

    public function registre()
    {
        // set rules
    $this->form_validation->set_rules('email','EMAIL','trim|required|valid_email|is_unique[utilisateurs.email]');
    if($this->form_validation->run()==FALSE)
        {
            echo validation_errors();
        }else{
            $data=array(
                'email'=>$this->input->post('email'));
            $this->blog_m->registre($data);
            

            echo "<div class='alert'>Inscription success</div>";
            echo "email";
        }
    }

}

There is no error but the data does not insert in the database and there is no success message.

</div>
  • 写回答

2条回答 默认 最新

  • 笑故挽风 2017-02-02 15:37
    关注

    In your controller load model first.Like this..

    public function __construct()
        {
            parent::__construct();
            $this->load->helper(array('form','url'));//loads required heplers
            $this->load->model('blog_m');//loads your model 
        }
    

    In view: you are using ajax so set form action empty.Like this..

    <?php echo form_open('',array('id'=>'myForm'));?>
    
    评论

报告相同问题?