0

codeIgniter を使用して、enctype: multipart/form-data でユーザー登録を正常に実装しましたが、その後、AJAX を使用してユーザー登録を試み始めました。コンソールで ajax 応答を確認できますが、常に null 値 (パスワードなど) を持つ応答が 1 つあります。また、ユーザーを登録していません。ajax リクエストを送信した後、データが挿入されません。これが私がやっていることです。これは、このスクリプトを書いた私の登録ビューです

<script type="text/javascript">
    function AJAXcreatemember() {

            //getting form fields values
            var fname = $('#firstname').val();
            var lname = $('#lastname').val();
            var email = $('#email').val();
            var pwd = $('#pwd').val();
            var cpwd = $('#cpwd').val();
            var gender = $('#gender').val();
            var country = $('#country').val();
            var city = $('#city').val();
            var occupation = $('#occupation_area').val();
            var about = $('#about').val();
            var interest = $('#interest').val();
            var contact_no = $('#contact_no').val();
            var website_url = $('#website_url').val();

            //setting ajax information to be sent to $.ajax()
            var path =  "<?php echo base_url()?>user/register/";
            var data = 'first_name='+fname+'&last_name='+lname+'&email='+email+'&password='+pwd+'&gender='+gender+'&country='+country+'&city='+city+'&occupation_area='+occupation+'&about='+about+'&interest='+interest+'&contact_no='+contact_no+'&website_url'+website_url;

            alert('URL: ' + path);

            $.ajax({

                url: path,
                data: data,
                type: 'GET',
                success: function(data) {
                    alert(data);
                }   
            });

            return false;

</script>

ユーザーコントローラー:

public function register() {

    $time = date("Y-m-d H:i:s");

    $this->form_validation->set_rules('firstname', 'First Name', 'required');
    $this->form_validation->set_rules('lastname', 'Last Name', 'required');
    $this->form_validation->set_rules('gender', 'Gender', 'required');
    $this->form_validation->set_rules('email', 'Email', 'required|valid_email');
    $this->form_validation->set_rules('pwd', 'Password', 'matches[cpwd]');
    $this->form_validation->set_rules('city', 'City', 'required');
    $this->form_validation->set_rules('country', 'Country', 'required');
    $this->form_validation->set_rules('occupation_area', 'Functional Area', 'required');

    if ($this->form_validation->run() == FALSE) {

        $this->index();
    }
    else {

        $user_email = $this->user_model->get_user_by_email($this->input->post('email'));

        if($user_email->num_rows() == 0) {


            $avatar = $this->upload('profile_image'); 
            $this->user_model->create_user($time , $avatar);

            /*if($this->upload->data()) {

                $data['success'] = 'yes';
                $this->load->view('index', $data);
            }*/ 
        }
        /*else {

            $data['page_title'] = 'CM Rizwan - Khabrain News Group Columnist';
            $data['email_exist_error'] = 'Email Already exist.';
            $this->load->view('index', $data);
        }*/

    }
}

public function upload($field) {

    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '200';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';
    $config['encrypt_name']  = TRUE;

    $this->load->library('upload', $config);

    if(!$this->upload->do_upload($field)) { 

        $upload_error = array('upload_error' => $this->upload->display_errors());
        $this->load->view('index', $upload_error);
    }
    /*else {

        $upload_success = array('upload_data' => $this->upload->data());
        $this->load->view('index', $upload_success);
    }*/

    //$this->upload->data() returns all the required information for an upload file.
    $avatar = $this->upload->data();
    return $avatar['file_name'];
}

注: 登録ビューは、スライスした index.php ファイルの一部です。登録ビューは、登録リンクをクリックすると表示されるポップアップです。

4

0 に答える 0