[英]post serialized data through using jquery load method in codeigniter
这是我的代码。
<form id='user'>
<label for="name">Name :</label>
<input type="text" id="name" name="name"/>
<label for="email">Email :</label>
<input type="text" id="email" name="email"/>
<input type="submit"/>
</form>
<div id="output"></div>
jQuery的:
$('#user').on('submit',function(event){
event.preventDefault();
var data=$(this).serialize();
adddetails(data);
});
function adddetails(data){
var url='http://localhost/projectname/index.php/users/adddat';
$("#output").load(url,data,function(response,status){
});
}
在'用户'控制器中
function adddat(){
$name=$this->input->post('name');
$email=$this->input->post('email');
echo "name: ".$name." and email: ".$email;
}
这里当我点击提交时,输出div就像这样显示
name: and email:
在这里,我没有得到姓名和电子邮件的发布数据。 有谁能建议我一个想法。
使用JQuery的加载函数( JQuery API )
如果数据作为对象提供,则使用POST方法; 否则,假设GET。
Per JQuery对序列化函数的定义
.serialize()方法以标准URL编码表示法创建文本字符串。
也就是说,当假定GET时,你试图得到一个POST变量,因为它不是传递给load
函数的对象,而是一个字符串。
尝试使用$this->input->get('parameter_name')
作为旁注,您可以将数据点作为函数参数获取: function addat($name, $email){
作为codeigniter通常会接受获取GET参数的方法。
serialize方法创建一个字符串输出。 要进行POST调用,您需要使用JSON对象。
$('#user').on('submit',function(event){
event.preventDefault();
var data=formToJSON('#user');
adddetails(data);
});
function adddetails(data){
var url='http://localhost/projectname/index.php/users/adddat';
$("#output").load(url,data,function(response,status){
});
}
function formToJSON( selector )
{
var form = {};
$(selector).find(':input[name]:enabled').each( function() {
var self = $(this);
var name = self.attr('name');
if (form[name]) {
form[name] = form[name] + ',' + self.val();
}
else {
form[name] = self.val();
}
});
return form;
}
Credit 使用jQuery将表单数据转换为JavaScript对象
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.