1

私はこれを行うためにjQueryとCodeIgniterを使用しています。基本的に、ユーザー名、パスワード、および電子メールをユーザーに要求する登録フォームがあります。フォームが送信されると、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);
            });
        });
     });
4

2 に答える 2

1

HTMLマークアップのどこかに<head>、次のようなものを入れる必要があります。

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

次に、でregistration.js、URLを変更し、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

投稿のURLを次のように変更する必要があります。

'your-controller/your-function'

あなたの場合は次のようになります。

'register/step1'

また、データの送信方法を変更する必要があります。jqueryは'data'オブジェクトを想定しています。したがって、完全な投稿は次のようになります。

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

jQuery投稿の詳細:http: //api.jquery.com/jQuery.post/

于 2012-06-07T15:23:08.943 に答える