2017-06-22 16 views
1

フォームを送信せずに一部のフォームフィールドを検証する必要があります。codeigniterフォームアンカータグでの検証

誰かが助けることができる場合はここに私のコードです。

ビュー:

<form> 
<input type="text" name="first_name" placeholder="First Name..." class="textfield"> 
<a href="javascript:void();" onClick="validateName();"> 
</form> 

スクリプト:

function validateName(){ 

var first_name = $('.textfield').val(); 

$.ajax({ 
url: "Eligibility/contAjax", 
type: "POST", 
data: first_name, 
dataType:"json", 
success: function(response){ 
var obj = eval(response); 
if(obj.error==0){ 
console.log('Success'); 
} 
else{ 
console.log('Failed'); 
} 
} 
}); 
} 

コントローラー:

public function contAjax(){ 

// loading form validation library // 
$this->load->library('form_validation'); 

$this->form_validation->set_rules('first_name', 'First name', 'required'); 


if($this->form_validation->run()== TRUE){ 
echo json_encode(array('error' => 0)); 
} 
else{ 
echo json_encode(array('error' => 1)); 
} 

} 

それは常にエラー= 1とフォーム検証が動作していない返す...

+1

ここで、 'countryOfBirth'入力フィールドはありますか? – Shihas

+0

更新されました... –

+0

私はルールを変更しましたが、動作しませんでした:( –

答えて

0

これはテストされていないコードです...しかし、動作するはずです、私はURLで大文字を使用しての大ファンではない

...あなたが簡単にあなたの価値を調べることができますにconsole.logを追加したので

function validateName() { 
    var first_name = $('.textfield').val(); 

    console.log('first_name is ' + first_name); // Check it's getting this far 
    $.ajax({ 
     url: "Eligibility/contAjax", 
     type: "POST", 
     data: {first_name: first_name}, 
     dataType: "json", 
     success: function (response) { 
      if (response.error == 0) { 
       console.log('Success'); 
      } 
      else { 
       console.log('Failed'); 
      } 
     } 
    }); 
} 

(彼はにやにや笑いながら言いました) (ウィンドウでのみ動作し、linux/apacheサーバー上で涙が出る可能性があります)ので、小文字を使用するのが最適です。

ただ、これには、サーバー側は、あなたが投稿し見るものを検査できsimplish方法をいくつかのより多くのデバッグを追加する...

これはちょうどあなたの投稿の値をチェックする方法(放火犯のようなものを使用して、または類似しているありますはるかに良い...)

function contAjax() { 
// loading form validation library // 
    $this->load->library('form_validation'); 
    $this->form_validation->set_rules('first_name', 'First name', 'required'); 
    $first_name = $this->input->post('first_name'); 

    if ($this->form_validation->run() == TRUE) { 
     echo json_encode(array('error' => 0, 'first_name' => $first_name)); 
    } else { 
     echo json_encode(array('error' => 1, 'first_name' => $first_name)); 
    } 
} 

そして、あなたのJSにはなるだろう...

function validateName() { 
    var first_name = $('.textfield').val(); 

    console.log('first_name is ' + first_name); // Check it's getting this far 
    $.ajax({ 
     url: "Eligibility/contAjax", 
     type: "POST", 
     data: {first_name: first_name}, 
     dataType: "json", 
     success: function (response) { 
      if (response.error == 0) { 
       console.log('Success - First Name = ' + response.first_name); 
      } 
      else { 
       console.log('Failed - First Name = ' + response.first_name); 
      } 
     } 
    }); 
} 

トリックはこれらのkをデバッグ作るこれ、何が起こっている「見る」方法を知っています多くのもののinds ...

希望に役立ちます。再びこのコードはテストされていませんが、プリンシパルを示しています...

+0

TimBrownlawありがとうございました...あなたは私の一日を作った...その今働いています... –

+0

それは聞くグランドです:)あなたは大歓迎です:) – TimBrownlaw

関連する問題