2011-02-10 8 views
1

ajax経由でフォームを送信しようとすると問題が発生します。私が最初の名前だけを入力して提出すれば、それは私に姓のエラーを与えます。姓だけを入力すると、名前にエラーが表示されます。これは私が期待するものです。codeigniterを使用してフォームを処理するときのajaxの問題

ここで、姓と名の両方を入力してフォームを送信すると、コンソールに「msg is null」というエラーが表示されます。姓と名の両方が提出された場合、msgはどのようにNULLになりますか?

私のフォームはこれらが含まれています

<p class="inline-medium-label"><span class="relative"> 
    <?php echo form_error('firstName'); ?> 
    <label for="firstName" class="required">First Name</label> 
    <input type="text" class="full-width" name="firstName" value="<?php echo set_value('firstName'); ?>" /><br /> 
</span></p> 

<p class="inline-medium-label"><span class="relative"> 
    <?php echo form_error('lastName'); ?> 
    <label for="lastName" class="required">Last Name</label> 
    <input type="text" class="full-width" name="lastName" value="<?php echo set_value('lastName'); ?>" /><br /> 
</span></p> 

私のAJAX呼び出し

$.ajax({ 
    url: 'addMember', 
    type: 'post', 
    data: data, 
    dataType: 'json', 
    success: function(msg) { 
     if(msg.validate === false) { // if there are validation errors... 
     if(msg.firstName != '') { 
     $('input[name="firstName"]').addClass('error'); 
     $('input[name="firstName"]').after('<span class="check-error"></span>'); 
    } 
    if(msg.lastName != '') { 
     $('input[name="lastName"]').addClass('error'); 
     $('input[name="lastName"]').after('<span class="check-error"></span>'); 
    } 
     } else { 
     $('div.modal-content').append('<h2>User Added Successfully!</h2>'); 
     } 
    } 
}); 

アヤックス

function addMember() 
{ 
    $data['sess'] = $this->session; 

    // validates and sanitizes the user's input 
    $this->form_validation->set_rules('firstName', 'First Name', 'trim|required|max_length[30]|xss_clean'); 
    $this->form_validation->set_rules('lastName', 'Last Name', 'trim|required|max_length[30]|xss_clean'); 

    // if there are validation errors... 
    if($this->form_validation->run() == FALSE) 
    {  
     if($this->input->post('ajax')) // if the form was submitted with ajax... 
     { 
     echo json_encode(array('validate'=>FALSE, 
          'firstName'=>form_error('firstName'), 
       'lastName'=>form_error('lastName') 
       )); 
     } 
     else // else if NOT submitted with ajax... 
     { 
     echo 'Ajax not used'; 
     } 
    } 
    else // if there are NO validation errors 
    { 

    }  
} 

答えて

4

まあ、それは(なぜなら、あなたの他の句で単純だが扱う私のコントローラデータ検証)あなたは何もしません。

はそうです、データは、私はそれが簡単に何かを知っていた

+0

を助け

else // if there are NO validation errors { //You should output something here } 

希望nullになりますあなたのjavascript関数に戻りました!あなたの助けをありがとう、私はこの問題に時間を費やしました。 – Catfish

関連する問題