[英]Trying to submit form using ajax in codeigniter
我正在尝试使用 ajax 提交表单,但它总是出错并且数据未提交到数据库中。 请看一下我的代码。 我对此进行了搜索,但实际上没有得到任何解决方案,我是 Codeigniter 的新手,对此并没有太多了解。 我非常感谢有人帮助我解决此错误,谢谢。
jQuery / AJAX 代码:
<script>
$(document).ready(function(){
$("#personal-info").submit(function(e){
e.preventDefault();
var fname = $("#fname").val();;
var email_address= $("#email_address").val();
var comment= $("#comment").val();
$.ajax({
type: "POST",
url: '<?= site_url('Book/contact')?>',
data: {fname:fname,email_address:email_address,comment:comment},
success:function(data)
{
Swal.fire({
position: 'top-end',
icon: 'success',
title: 'Message send successfuly',
showConfirmButton: false,
timer: 1500
});
},
error:function()
{
Swal.fire({
position: 'top-end',
icon: 'error',
title: 'Message Sending Fale Please try again',
showConfirmButton: false,
timer: 1500
});
}
});
});
});
</script>
看法:
<div class="row">
<div class="col-lg-5 offset-lg-6 col-md-12">
<div class="section-title v2">
<h2>Write to us</h2>
</div>
<form id="personal-info" action="" method="post">
<div class="form-control-wrap">
<div id="message" class="alert alert-danger alert-dismissible fade"></div>
<div class="form-group">
<input type="text" class="form-control" id="fname" placeholder="Name*" name="fname" required>
</div>
<div class="form-group">
<input type="email" class="form-control" id="email_address" placeholder="email*" name="email" required>
</div>
<div class="form-group">
<textarea class="form-control" rows="8" name="comment" id="comment" placeholder="Your Message" required></textarea>
</div>
<div class="form-group">
<button type="submit" id="send_form" class="btn v7">Send Message</button>
</div>
</div>
</form>
</div>
</div>
Controller:
public function contact()
{
$data = array(
'name' => $this->input->post('fname'),
'emall' => $this->input->post('email'),
'message' => $this->input->post('message'),
);
$this->db->insert('contact',$data);
echo json_encode($data);
}
jQuery / AJAX 代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("form#personal-info").submit(function(e){
e.preventDefault();
var fname = $("#fname").val();
var email_address= $("#email_address").val();
var comment= $("#comment").val();
$.ajax({
type: "POST",
url: "<?php echo site_url('Book/contact')?>", // Add echo.
dataType : "JSON",
data: {fname:fname,email_address:email_address,comment:comment},
success:function(data)
{
Swal.fire({
position: 'top-end',
icon: 'success',
title: 'Message send successfuly',
showConfirmButton: false,
timer: 1500
});
},
error:function()
{
Swal.fire({
position: 'top-end',
icon: 'error',
title: 'Message Sending Fale Please try again',
showConfirmButton: false,
timer: 1500
});
}
});
});
});
</script>
Controller:
public function contact()
{
$data = array(
'name' => $this->input->post('fname'),
'emall' => $this->input->post('email'),
'message' => $this->input->post('message'),
);
$insertData = $this->db->insert('contact',$data);
echo json_encode($insertData);
}
您的 ajax 调用的数据email_address
与 php 的$this->input->post('email')
不匹配。
您的 url 查询正在像...&email_address=USER_INPUT
那样在接收端不匹配,即:
...->post('email')
它应该是..->post('email_address')
并且comment
字段作为comment
发送但接收为..->post('message')
这也是不正确的。
这应该工作
public function contact()
{
$data = array(
'name' => $this->input->post('fname'),
'emall' => $this->input->post('email_address'),
'message' => $this->input->post('comment'),
);
$this->db->insert('contact',$data);
echo json_encode($data);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.