你是怎么做到的jQuery使用CodeIgniter序列化?(How do you do jquer

2019-10-16 20:00发布

我使用jQuery和笨做到这一点。 好了,所以基本上我有一个要求用户输入用户名,密码和电子邮件报名登记表。 一旦提交表单,jQuery的将序列的形式,并给它一个过程页面,在控制器呼应值出来,然后的JavaScript将在原来的观点提醒后的值。 到目前为止,这是行不通的。 没有什么是被警告。 这里是我的代码:

(控制器)register.php:

    <?php if (!defined('BASEPATH'))
        exit('No direct script access allowed');

    class Register extends CI_Controller
    {
        public function step1()
        {
        $this->load->view('registration_step1');
        }
        public function step1_process(){
        var_dump($_POST);
        }
        public function step2()
        {
        $this->load->view('registration_step2');
        }
        public function step3()
        {
        $this->load->view('registration_step3');
        }
    }

(视图的一部分)registration_step1.php:

        <form style="margin-top: 100px;" class="registerbox">
        <h2>User Info:</h2>
        <input type="text" name="username" placeholder="Username" style="height:35px; width: 300px;font-size:20px;"/> <br />
        <input type="text" name="email" placeholder="Email" style="height:35px; width: 300px;font-size:20px;"/><br />
        <input type="password" name="password" placeholder="Password" style="height:35px; width: 300px;font-size:20px;"/><br />
        <input type="submit" class="btn btn-success" style="height:35px; width: 310px;font-size:20px;margin-bottom:5px;" value="Next &raquo;"/><br />
        </form>

(JavaScript的)registration.js:

     $(document).ready(function() {
        $(".registerbox").submit(function() { 
              var userinfo = $(".registerbox").serialize();
              return false;
               $.post("register/step1_process", {
               userinfo : userinfo
              },
            function(data) {
                alert(data);
            });
        });
     });

Answer 1:

在你的HTML标记,在某处<head>你应该把这样的:

<script type="text/javascript">
    var base_url = '<?php echo base_url(); ?>';
</script>

然后在你的registration.js ,改变你的网址,并做post返回之前:

$(document).ready(function() {
    $(".registerbox").submit(function() { 
        var userinfo = $(".registerbox").serialize();
        $.post(base_url + "register/step1_process", {
            userinfo : userinfo
        }, function(data) {
            console.log(data);
        });
        return false;
    });
});


Answer 2:

你只需要改变你的帖子的网址到:

'your-controller/your-function'

在你的情况将是:

'register/step1'

你还需要改变你如何发送数据。 jquery的期望一个“数据”对象。 因此,完整的文章应该是。

    $.post("register/step1", {
           data : userinfo
          },
        function(data) {
            alert(data);
        });

jQuery的岗位更多的信息: http://api.jquery.com/jQuery.post/



文章来源: How do you do jquery serialize with CodeIgniter?