After serializing data using jquery load method in codeigniter
Here is my code.
<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){
});
}
In the "user" controller
function adddat(){
$name=$this->input->post('name');
$email=$this->input->post('email');
echo "name: ".$name." and email: ".$email;
}
Here, when I click on submit, the div is output as follows
name: and email:
Here I do not receive the name and email postal data. Can anyone suggest me an idea.
The serialize method produces string output. to call POST you need to use a JSON object.
$('#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;
}
Using the jQuery Download Function ( JQuery API )
POST , ; , GET.
JQuery serialize
.serialize() URL.
, POST-, GET, , load, .
$this->input->get('parameter_name')
: function addat($name, $email){, codeigniter GET.