2016-06-03 24 views
0

Ich benutze Codeigniter, und ich versuche Form_validation arbeiten.Form_validation zeigt immer Fehler

Gestern habe ich begonnen, einige der Formulare meiner Website zu überprüfen, die Codeigniter-Standardregeln verwenden, und für einige, meine eigenen mit Rückrufen zu verwenden. Ich habe gestern alle Formulare getestet und es funktionierte, und heute arbeitete ich an einigen anderen Formen, die nicht funktionieren, und ich wollte die von gestern testen und sie funktionieren jetzt auch nicht, und ich nicht verstehen warum.

Einer meiner Form:

<form id="form_group_data" name="form_group_data" method="post" class="form-horizontal" action="<?php echo site_url('cms/cms/add')?>"> 
     <p> 
     <div class="form-body"> 
      <div class="form-group"> 
       <label class="col-md-2 control-label" for="cms"><?php echo lang('nomcms'); ?><span class="required"> * </span></label> 
       <div class="col-md-4"> 
       <input id="cms" class="form-control" type="text" rows="5" name="cms" required="required" value=""> 
       </div> 
      </div> 
      <div class="form-group"> 
       <label class="col-md-2 control-label" for="telephone"><?php echo lang('phone'); ?><span class="required"> * </span></label> 
       <div class="col-md-4"> 
       <input id="telephone" class="form-control" placeholder="<?php echo lang('exemple_number'); ?>" type="text" rows="5" name="telephone" required="required" value=""> 
       </div> 
      </div> 
      <div class="form-group"> 
       <label class="col-md-2 control-label" for="email"><?php echo lang('email'); ?><span class="required"> * </span></label> 
       <div class="col-md-4"> 
       <input id="email" class="form-control" type="text" rows="5" name="email" required="required" value=""> 
       </div> 
      </div> 
      <div class="form-group"> 
       <label class="col-md-2 control-label" for="id_localite"><?php echo lang('localite'); ?><span class="required"> * </span></label> 
       <div class="col-md-4"> 
       <?php echo form_dropdown('id_localite', $id_localite, null,'class="form-control" required="required"')?> 
       </div> 
      </div> 
      <div class="form-group"> 
       <label class="col-md-2 control-label" for="id_langue"><?php echo lang('langue'); ?><span class="required"> * </span></label> 
       <div class="col-md-4"> 
       <?php echo form_dropdown('id_langue', $id_langue, null,'class="form-control" required="required"')?> 
       </div> 
      </div> 
      <div class="form-group"> 
       <label class="control-label col-md-2"><?php echo lang('active'); ?></label> 
       <div class="col-md-9"> 
       <input type="checkbox" checked="checked" name="actif" class="make-switch" data-on-text="&nbsp;<?php echo lang('actif'); ?>&nbsp;&nbsp;" data-off-text="&nbsp;<?php echo lang('inactif'); ?>&nbsp;" data-on-color="info" data-off-color="danger"> 
       </div> 
      </div> 
     </div> 
     <input type="submit" value="<?php echo lang('add'); ?>" class="btn blue"/> 
     <button type="button" class="btn default" onclick="window.location='<?php echo site_url('cms/cms')?>'"><?php echo lang('cancel'); ?></button> 
    </div> 
    </p> 
    </form> 

Die Validierung Form:

$this->form_validation->set_rules('cms', 'cms', 'trim|required|xss_clean|callback_customAlphaNum'); 
     $this->form_validation->set_rules('telephone', 'telephone', 'trim|required|xss_clean|callback_customNatural|exact_length[12]'); 
     $this->form_validation->set_rules('email', 'email', 'trim|required|xss_clean|valid_email'); 
     $this->form_validation->set_rules('id_localite', 'id_localite', 'trim|required|xss_clean'); 
     $this->form_validation->set_rules('id_langue', 'id_langue', 'trim|required|xss_clean'); 

     // callback function 
     function customAlphaNum($str) 
     { 
      if (!preg_match('/^[a-z0-9 -]+$/i',$str)) 
      { 
       return false; 
      } 
     } 
     function customNatural($str) 
     { 
      if (!preg_match('/^[0-9+]+$/i',$str)) 
      { 
       return false; 
      } 
     } 

     // custom error message 
     $this->form_validation->set_message('customAlphaNum', lang('form_validation_customAlphaNum')); 
     // custom error message 
     $this->form_validation->set_message('customNatural', lang('form_validation_customNatural')); 

if ($this->form_validation->run() == FALSE) 
     { 
      $this->insert(); 
     } 
     else 
     { 

     ... 

     } 

Nun, was ich in meinen Feldern schreiben löst den Fehler, auch wenn es die Regel folgt ich herstellte. Tatsächlich löst es jeden von mir erstellten Callback aus, aber nicht die Standardregel von codeigniter (wie valid_email, required, etc.), also ist es ein Problem mit meinen Callbacks, aber gestern hatte ich kein Problem. Weiß jemand, was dieses Problem verursachen könnte?

+1

Haben Sie die Formularüberprüfungsbibliothek geladen? – Mani

+0

Ja, mit $ this-> load-> library ('form_validation'); – Komarzer

+1

im Callback fügen Sie den Wert – Mani

Antwort

Verwandte Themen