我正在尝试通过ajax在数据库中插入一条记录,但我不知道我的错误在哪里。
当我提交表单页面时重新加载!!
我的观点
<?php echo form_open('Home',array('id'=>'myForm','class'=>'col-md-7 col-sm-8 col-xs-12'));?>
<div class="col-md-3 col-sm-4 col-xs-4 no-left-padding">
<input type="submit" id="btn" value="اشترك" class="btn-default" />
</div>
<div class="col-md-9 col-sm-8 col-xs-8">
<input type="text" placeholder="البريد الاليكترونى" id="email" name="email">
<i class="fa fa-envelope-o" aria-hidden="true"></i>
</div>
<?php echo form_close();?>
<script src="<?php echo base_url();?>js/jquery.min.js"></script>
<script>
$(function(){
$( "#btn" ).click(function(event)
{
event.preventDefault();
var email= $("#email").val();
$.ajax(
{
type:"post",
url: "<?php echo base_url(); ?>Home/subscribe/",
data:{ email:email},
success:function()
{
alert("success!");
}
error: function()
{
alert("Invalide!");
}
}
);
});
});
</script>
控制器
<?php
class home extends CI_Controller{
public function __construct()
{
parent::__construct();
$this->load->model(array('Home_m'));
}
function index(){
$data=array(
"slider"=>$this->Home_m->slider(),
"cat"=>$this->Home_m->cat(),
);
$this->load->view('home_v',$data);
}
public function subscribe(){
$email = $this->input->post('email');
$this->Home_m->index($email);
//redirect('home','refresh');
}
}
?>
我的模特
<?php
class home_m extends CI_Model{
function index($email){
$data=array('s_email'=>$this->input->post('email'));
$this->db->insert('subscribe',$data);
}
}
?>
我在这里学到了更多的教程和问题,但我不知道为什么不工作和刷新页面!
答案 0 :(得分:1)
希望这会对您有所帮助:
您的观点应如下所示:(请参阅操作网址)
<?php echo form_open('Home/subscribe/',array('id'=>'myForm','class'=>'col-md-7 col-sm-8 col-xs-12'));?>
<div class="col-md-9 col-sm-8 col-xs-8">
<input type="text" placeholder="البريد الاليكترونى" id="email" name="email">
<i class="fa fa-envelope-o" aria-hidden="true"></i>
</div>
<div class="col-md-3 col-sm-4 col-xs-4 no-left-padding">
<input type="submit" id="btn" value="اشترك" class="btn-default" />
</div>
<?php echo form_close();?>
你的阿贾克斯:
<script type="text/javascript">
var form = $('#myForm');
form.on('submit', function(event){
event.preventDefault();
var email = $("#email").val();
//console.log('some text');
//return false;
$.ajax({
url : form.attr('action'),
type: 'post',
data:{"email" : email },
success: function(data){
console.log(data)
}
})
});
</script>
您的控制器应 以资本 开头,如下所示:
<?php
class Home extends CI_Controller{
........
}
并且您的subscribe
方法应该是这样的:
public function subscribe()
{
$email = $this->input->post('email');
$this->Home_m->index($email);
echo 'success';
exit();
}
您的模型功能应该是这样的:
function index($email)
{
$data = array('s_email'=> $email);
$this->db->insert('subscribe',$data);
}