Codeigniter 和 jquery Ajax
Posted
技术标签:
【中文标题】Codeigniter 和 jquery Ajax【英文标题】:Codeigniter & jquery Ajax 【发布时间】:2017-06-19 17:56:48 【问题描述】:我无法使用ajax在数据库中通过表单插入数据,没有firebug错误有人可以帮助我
查看:
<!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>
型号:
<?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);
控制器:
<?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";
没有错误但是数据没有插入数据库,也没有成功信息。
【问题讨论】:
您是否检查了请求以检查是否正在发送正确的表单数据,以及正在接收哪些标头? 您可能在错误日志中收到了 PHP 错误,并且 Codeigniter 或 php.ini 可能被配置为不显示 php 错误,否则会回显 html,无论是验证错误还是成功, 将被 jQuery 选择并显示在消息 div 中 微笑,我收到了 200 毫秒 ok 【参考方案1】:试试这个。
在视图中(AJAX 部分)
<script>
$(function()
$( "#btn" ).click(function(event)
event.preventDefault();
var email= $("#email").val();
$.ajax(
type:"post",
url: "<?php echo base_url(); ?>index.php/blog_c/registre",
data: email:email,
success:function(response)
console.log(response);
$("#message").html(response);
$('#cartmessage').show();
error: function()
alert("Invalide!");
);
);
);
</script>
在控制器中
public function registre()
$email = $this->input->post('email'); # add this
$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
if(!$this->blog_m->registre($email))
echo "Something Went Wrong";
else
echo "Inscription success";
在模型中
function registre($email)
$data = array(
'email'=>$this->input->post('email')
);
$this->db->insert('utilisateurs',$data);
【讨论】:
【参考方案2】:首先在您的控制器加载模型中。像这样..
public function __construct()
parent::__construct();
$this->load->helper(array('form','url'));//loads required heplers
$this->load->model('blog_m');//loads your model
鉴于:您正在使用 ajax 所以设置表单action
empty.Like this..
<?php echo form_open('',array('id'=>'myForm'));?>
【讨论】:
你认为encode json没有问题以上是关于Codeigniter 和 jquery Ajax的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 jquery 和 ajax 删除多个用户(codeigniter 3)
为啥我通过 jquery ajax 和 codeigniter 得到验证错误?
Codeigniter 图片上传使用 jquery 和 ajax 错误 [重复]
在这个例子中,让 jQuery/Ajax 与 CodeIgniter 一起工作的最佳方法是啥?