我正在尝试创建一个发送电子邮件的联系表单。我正在使用jquery ajax。我的问题是如何将表单值从 jquery ajax 传递给代码点火器函数?这是我的 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 是否指向给定的控制器,是否来自浏览控制台。
希望这对您有所帮助。如果您仍然面临任何问题,请告诉我。