2015-06-16 43 views
4

這是我的代碼。通過在codeigniter中使用jquery加載方法後序列化數據

<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; 
} 

這裏當我點擊提交輸出格是這個樣子

name: and email:

在這裏,我沒有得到名稱和電子郵件的發佈數據。任何人都可以給我一個想法。如果數據被作爲一個對象提供

+0

請檢查控制檯的值傳遞給你的頁面,頁面就需要反序列化 – Ramki

+0

@Ramki的數據不能傳遞給控制器​​的方法上。 – user3066006

+1

用'$ this-> input-> get('name');' – Saty

回答

1

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; 
} 

信用Convert form data to JavaScript object with jQuery

2

使用jQuery的負載功能(JQuery API

POST方法被使用;否則,假定爲GET。

serialize功能

的.serialize的JQuery的定義()方法創建標準的URL編碼符號的文本字符串。

這就是說,當你假設GET時,你試圖獲得一個POST變量,因爲它不是傳遞給load函數的對象,而是一個字符串。

嘗試使用 $this->input->get('parameter_name')

一點題外話,你可以得到的數據點爲功能參數:function addat($name, $email){如笨,通常會接受越來越GET則params的那個方法。

+0

謝謝你的答案。使用get request而不是post來解決問題。 – user3066006

相關問題