【发布时间】:2020-06-04 05:15:59
【问题描述】:
我正在尝试获取已通过 ajax 提交的文本框的值,但是当我尝试在控制器方法中获取其值时,它什么也不返回。
这是我的 AJAX 函数和控制器方法:
jQuery("#frm_xyz").validate({
rules: {
otp: {
required: true
},
....
....
submitHandler: function(form,event) {
event.preventDefault();
var from_url=jQuery(form).attr('action');
jQuery.ajax({
url: from_url,
type: "POST",
data: new FormData(document.getElementById("frm_xyz")),
cache: false,
processData: false,
success: function(data) {
}
});
}
});
HTML:
<?php echo form_open('verify-verification-otp',array('id'=>"frm_xyz")); ?>
<input type="text" name="otp" placeholder="OTP" class="form-control" />
<br />
<input type="submit" name="submit" id="btn_verify_contact" class="btn btn-info" value="Verify OTP" />
<?php echo form_close(); ?>
但是当我尝试在控制器中获取文本框的值时,我没有得到值!
PHP:
public function verify_otp()
{
$otp = $this->input->post('otp');
print_r($otp);
die();
}
【问题讨论】:
-
您必须在您的 ajax 发布数据中传递表单序列化数据,例如
data: form.serialize()。请正确构建您的代码.. -
在这一行之后 -
var from_url=jQuery(form).attr('action');,请打印from_url里面有什么价值。我认为它是空白的,因为您没有定义它。 -
同样在提交时,如果开发工具,您可以检查网络选项卡。它将向您显示请求提交的 URL 以及输入值。
标签: php jquery codeigniter codeigniter-3