簡體   English   中英

在codeigniter中使用jquery load方法發布序列化數據

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM