[英]how to insert from data using ajax in codeigniter?
controller: test.php控制器:test.php
public function signin()
{
if($this->input->post('insert'))
{
$name = trim($this->input->post('name'));
$email = trim($this->input->post('email'));
$phone = trim($this->input->post('phone'));
$message = trim($this->input->post('message'));
$s_data = date('Y-m-d');
$data = array(
'name' => $name,
'email' => $email,
'phone' => $phone,
'message' => $message,
's_date' => $s_date
);
$recaptchaResponse = trim($this->input->post('g-recaptcha-response'));
$userIp=$this->input->ip_address();
$secret='****************************';
$url="https://www.google.com/recaptcha/api/siteverify?secret=".$secret."&response;=".$recaptchaResponse."&remoteip;=".$userIp;
$response = $this->curl->simple_get($url);
$status= json_decode($response, true);
$this->db->insert('contact',$data);
if($status['success'])
{
$this->session->set_flashdata('flashSuccess', 'successfull');
}
else
{
$this->session->set_flashdata('flashSuccess', 'Sorry Google Recaptcha Unsuccessful!!');
}
}
}
Ajax Code:阿贾克斯代码:
<script>
$(document).ready(function(){
$("#insert").click(function(){
var name = $("#name").val();
var email = $("#email").val();
var phone = $("#phone").val();
var message = $("#message").val();
var dataString = 'name='+ name + '&email='+ email + '&phone='+ phone + '&message='+ message;
if(name==''||email==''||phone==''||message=='')
{
alert("Please Fill All Fields");
}
else
{
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "<?php echo base_url('index.php/'); ?>test/signin",
data: dataString,
cache: false,
success: function(result){
alert(result);
}
});
}
return false;
});
});
</script>
Bootstrap Modal View Code:- Bootstrap 模态视图代码:-
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="myModalLabel">header</h4>
</div>
<div class="modal-body">
<div class="error"><strong><?=$this->session->flashdata('flashSuccess')?></strong></div>
<form method="post" enctype="multipart/form-data" id="form1">
<input type="text" class="form-control1" id="name" name="name" placeholder="Enter Your Name">
<input type="text" class="form-control1" id="email" name="email" placeholder="Enter Your Email Id">
<input type="text" class="form-control1" id="phone" name="phone" placeholder="Enter Your Phone">
<textarea class="form-control1" name="message" id="message" placeholder="Enter Your Message"></textarea>
<div class="g-recaptcha" data-sitekey="****************************"></div>
</br>
<input type="submit" name="insert" id="insert" value="Submit">
</form>
</div>
<div class="modal-footer" style="background: #2874f0;padding: 25px;">
<p>footer</p>
</div>
</div>
</div>
</div>
In this code, I have create a bootstrap modal
which is open when page is load and inside modal body I have create a simple enquiry from with Google recaptch.在这段代码中,我创建了一个bootstrap modal
,它在页面加载时打开,在模态体内部我使用 Google recaptch 创建了一个简单的查询。 Now, I want to insert form data using ajax without loading page after inserting value into database it show successfull message.现在,我想在将值插入数据库后使用 ajax 插入表单数据而不加载页面,它显示成功消息。
So, How can I do this ?Please help me.那么,我该怎么做?请帮帮我。
Thank You谢谢
step 1) in test.php load db步骤 1) 在 test.php 加载数据库
public function __construct()
{
parent::__construct();
$this->load->database();
}
step 2) modify步骤2)修改
$this->db->insert('contact',$data);
if($status['success'])
{
// code
}
to到
if($this->db->insert('contact',$data))
{
//rest of code
}
it should work它应该工作
change in controller控制器变更
note: please read commented line for better undersatnding注意:请阅读注释行以获得更好的理解
public function signin()
{
if($this->input->post('insert'))
{
$name = trim($this->input->post('name'));
$email = trim($this->input->post('email'));
$phone = trim($this->input->post('phone'));
$message = trim($this->input->post('message'));
$s_data = date('Y-m-d');
$data = array(
'name' => $name,
'email' => $email,
'phone' => $phone,
'message' => $message,
's_date' => $s_date
);
$recaptchaResponse = trim($this->input->post('g-recaptcha-response'));
$userIp=$this->input->ip_address();
$secret='****************************';
$url="https://www.google.com/recaptcha/api/siteverify?secret=".$secret."&response;=".$recaptchaResponse."&remoteip;=".$userIp;
$response = $this->curl->simple_get($url);
$status= json_decode($response, true);
if($status['success'])
{
//insert data when get success in google recaptcha
$this->db->insert('contact',$data);
$res['msg']="successfull";
//no need to set flash session in CI for ajax
//$this->session->set_flashdata('flashSuccess', 'successfull');
}
else
{
//$this->session->set_flashdata('flashSuccess', 'Sorry Google Recaptcha Unsuccessful!!');
$res['msg']="Sorry Google Recaptcha Unsuccessful!!";
}
//set page header as json format
$this->output
->set_content_type('application/json')
->set_output(json_encode($res));
}
}
change your script改变你的脚本
<script>
$(document).ready(function(){
$("#insert").click(function(){
var name = $("#name").val();
var email = $("#email").val();
var phone = $("#phone").val();
var message = $("#message").val();
//pass object in post
var dataString = {'name': name , 'email': email , 'phone': phone , 'message': message};
if(name==''||email==''||phone==''||message=='')
{
alert("Please Fill All Fields");
}
else
{
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "<?php echo base_url('index.php/'); ?>test/signin",
data: dataString,
dataType: 'json',
cache: false,
success: function(result){
alert(result.msg);
}
});
}
return false;
});
});
</script>
thanks谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.