[英]how to pass data from controller to jquery (Ajax) in codeigniter
[英]How to pass form values from jquery ajax to codeigniter controller?
我正在尝试创建一个发送电子邮件的联系表格。 我正在使用jquery ajax。 我的问题是如何将表单值从jquery ajax传递给codeigniter函数? 这是我的html形式:
<form id="ph-form">
<input type="text" name="name" placeholder="Name*" id="name" />
<input type="email" name="email" placeholder="Email*" id="email" />
<input type="text" name="subject" placeholder="Subject*" id="subject" />
<textarea name="message" placeholder="Messaage*" id="message" ></textarea>
<input type="submit" name="send_message" value="Send Message" id="submit_btn">
</form>
这是我的jQuery ajax脚本:
<script type="text/javascript">
$('#submit_btn').click(function(){
var form_data = {
name : $('#name').val(),
email : $('#email').val(),
subject : $('#subject').val(),
message : $('#message').val(),
ajax : '1'
};
$.ajax({
type : 'POST',
url : '<?= $this->config->site_url().$this->uri->uri_string() ?>',
async : false,
data : form_data,
success : function(data){
alert("wew success!");
}
});
return false;
});
</script>
最后是我的控制器:
public function test($view){
switch($view){
case 'contact1':
$this->load->view('ph-contact1');
break;
case 'contact2':
$this->load->view('ph-contact2');
break;
case 'contact3':
$this->load->view('ph-contact3');
break;
default:
$this->load->view('ph-contact1');
break;
}
if($this->input->post('ajax') == '1'){
echo "<script>alert(".$this->input->post('name').")</script>";
}
}
我不确定ajax是否正常工作,并且我没有表单验证。
首先将输入“提交”更改为“按钮”以防止页面刷新。
<input type="button" name="send_message" value="Send Message" id="submit_btn">
那么网址将是
url : "<?= site_url().'your_controller_name/test'; ?>",
这将是控制器功能测试中的发布数据,然后通过$this->input->post('ajax')
获得发布数据。 为了进行调试,您可以通过检查浏览器元素来使用控制台
您的代码看起来可以通过Ajax将值传递给控制器
您可以分别获取表单值,例如
$this->input->post('name');
$this->input->post('email');
$this->input->post('subject');
$this->input->post('message');
另外,请确认您所请求的URL是否指向浏览器的控制台,是否指向给定的控制器。
希望这会帮助你。 让我知道您是否仍然遇到任何问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.