2015-06-16 2 views
4

Вот мой код.опубликовать сериализованные данные с помощью метода загрузки jquery в 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:

Здесь я не получаю почтовые данные имени и электронной почты. Может ли кто-нибудь предложить мне идею.

+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.

По определению JQuery в части serialize функции

.serialize() метод создает текстовую строку в стандартном URL-кодированных обозначений.

Тем не менее, вы пытаетесь получить переменную POST, когда предполагается, GET, так как это не объект передается в функцию load, это строка.

Попробуйте использовать $this->input->get('parameter_name')

Как Замечание, вы можете быть в состоянии получить точки данных в качестве параметров функции: function addat($name, $email){, как CodeIgniter обычно принимают этот метод приобретайте Params.

+0

Спасибо за ответ. используя запрос запроса вместо сообщения, решает проблему. – user3066006

Смежные вопросы