微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 在codeigniter中使用jquery load方法发布序列化数据

这是我的代码.

 <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就像这样显示

姓名:和电子邮件

在这里,我没有得到姓名和电子邮件的发布数据.有谁能建议我一个想法.

解决方法:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐