2017-07-21 12 views
0

私はtinymceを使って、アプリケーションに関連するユーザーのカバーレターを追加しています。codeigniterのポスト配列でHTML応答を検証する方法

Array 
(
[cover_letter] => <p>Test Cover Letter</p> 
    <ol> 
    <li>Need to save this data</li> 
    </ol> 
    <p><strong>Thanks</strong></p> 
) 

だけで、私はこのためrequire検証ルールを使用している:私のポストの配列がどのように見えるか これ。

'candidate_cover_letter' => array(
    array(
      'field' => 'cover_letter', 
      'label' => 'Cover Letter', 
      'rules' => 'required' 
    ) 
) 

私はこのようなカバーレターに関する検証エラーを取得するには、が必要です。

私は2つの主な問題があります:

  • HTMLポスト・アレイ・データを検証する方法

    1. は、このようなデータを保存するには、このベストプラクティスですか?いいえの場合は、このデータをどのように保存する必要がありますか?
  • 答えて

    0

    我々はこのように行く必要があるフォームの検証を行いたい場合はCodeIgniterの中のすべてのまず、:

    $config = array(
        array(
          'field' => 'username', 
          'label' => 'Username', 
          'rules' => 'required' 
        ), 
        array(
          'field' => 'password', 
          'label' => 'Password', 
          'rules' => 'required', 
          'errors' => array(
            'required' => 'You must provide a %s.', 
          ), 
        ) 
    ); 
    
    $this->form_validation->set_rules($config); 
    

    あなたはとてもhere

    を参照することができ、ここにあなたのコードは次のようにする必要があります

    $config =array(
        array(
          'field' => 'cover_letter', 
          'label' => 'Cover Letter', 
          'rules' => 'required' 
        ) 
    ); 
    $this->form_validation->set_rules($config); 
    

    上記の例のように、$ configに余分なフィールドを追加することができます。

    もう1つの質問は、「データを保存する方法」です

    "TEXT"タイプのデータベーステーブルのフィールドを使用することをお勧めします。これは問題ありません。

    +0

    私はちょうど私が疑問に掲載されていないこのの世話をしている:CIフォーム検証を利用するための一つの方法です。 –

    +0

    それで、それはあなたのために働いていますか?何かエラーがある場合は、ここに間違いなくエラーを貼り付けてください。 –

    0

    送信したら、どこかのコントローラにリダイレクトされます。

    //look to see if you have post data 
    if($this->input->post('submit')){ 
    
        //points to applications/config/form_validation.php (look at next chucnk to set form_validation.php) 
        if($this->_validate('cover_letter')){ 
         //rest of your post logic 
    
        //get data to upload to database 
        $data = [ 
         'cover_letter'=>$this->input->post('cover_letter'), 
         'user_id'=>$this->input->post('user_id') 
    
        ]; 
         //save data to database ..also this should be moved to a model 
         $this->db->insert('name of table to insert into', $data); 
        } 
        //if you post doesnt not get validated you will fall here and if you have this chucnk of code in the same place were you have the logic to set up the cover letter you will see a pink message that says what ever error message you set up 
    } 
    

    設定したフォームvalidation.php

    <?php 
    
    $config = [ 
    
        //set up cover letter validation 
        //$this->_validate('cover_letter') maps to here and checks this array 
        'cover_letter' => [ 
         [ 
         'field'=>'cover_letter', 
         'label'=>'Cover Letter Required',//error message to return back to user 
         'rules'=>'required'//field is required 
         ], 
         //example to add additional fields to check 
         [ 
         'field'=>'observations', 
         'label'=>'Observations', 
         'rules'=>'required' 
         ], 
    
        ], 
    ] 
    
    +0

    私はCodeIntierがHTML入力の検証ではないという点を得ていないと思います。それがポルブレです。あなたが提案した答えは、私がすでに行ったことです。 –

    関連する問題