1

我正在使用 jQuery 和 CodeIgniter 来执行此操作。好的,所以基本上我有一个注册表单,要求用户输入用户名、密码和电子邮件。提交表单后,jQuery 将序列化表单并将其提供给流程页面,在控制器中回显值,然后 javascript 会在原始视图中提醒 post 值。到目前为止,它不起作用。没有任何警报。这是我的代码:

(控制器)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);
            });
        });
     });
4

2 回答 2

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;
    });
});
于 2012-06-07T15:50:00.907 回答
0

您只需将您的帖子网址更改为:

'your-controller/your-function'

在您的情况下,它将是:

'register/step1'

您还需要更改发送数据的方式。jquery 需要一个“数据”对象。所以完整的帖子应该是。

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

有关 jQuery 帖子的更多信息:http: //api.jquery.com/jQuery.post/

于 2012-06-07T15:23:08.943 回答