[英]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.