2016-05-27 6 views
1

arbeiten habe ich eine Form wie so:Formulareingabearray schafft ein leeres Array, die leer() nicht mit

 <div class="clone-wrapper" data-id="education"> 
      <div class="row cloneable" data-id="0">    
       <div class="col-md-6"> 
        <div class="form-group"> 
         <label><?php echo System::translate("Education Institution Name"); ?></label> 
         <input placeholder="<?php echo System::translate("ex : University"); ?>" name="education[0][institution]" type="text" class="max_len" maxlength="100" value=""> 
        </div> 
       </div> 
       <div class="col-md-6"> 
        <div class="form-group"> 
         <label><?php echo System::translate("Education Degree"); ?></label> 
         <input placeholder="<?php echo System::translate("ex : Bachelor Degree"); ?>" name="education[0][degree]" type="text" class="max_len" maxlength="100" value=""> 
        </div> 
       </div> 


       <div class="col-md-6"> 
        <div class="form-group"> 
         <label><?php echo System::translate("Date of Enrollment"); ?></label> 
         <input placeholder="<?php echo System::translate("ex : January 2001"); ?>" name="education[0][year_begin]" type="text" class="monthyearpicker" autocomplete='off' value=""> 
        </div> 
       </div> 
       <div class="col-md-6"> 
        <div class="form-group"> 
         <label><?php echo System::translate("Date of Completion"); ?></label> 
         <input placeholder="<?php echo System::translate("ex : December 2004"); ?>" name="education[0][year_finish]" type="text" class="monthyearpicker" autocomplete='off' value=""> 
        </div> 
       </div> 

       <div class="col-md-12"> 
        <div class="form-group"> 
         <label><?php echo System::translate("Education Note"); ?></label> 
          <textarea rows="6" class="form-control" name="education[0][about]"></textarea> 
        </div> 
       </div> 
      </div> 
     </div> 
     <div class="white-space-20"></div> 
     <div class="row text-right"> 
      <div class="col-md-12"> 
       <div class="btn btn-default btn-sm clonable-button" data-clone="education"> 
        <i class="fa fa-plus"></i><?php echo System::translate("Add Education"); ?></div> 
      </div> 
     </div> 

Wie Sie mir Namen Arrays bin mit sehen können wie education[0][inputname] jetzt mein Problem ist, Dies erzeugt ein Array ohne Werte, so dass ich nicht überprüfen kann, ob sie keine Werte in die Eingänge eingegeben haben. Es gibt:

Array 
(
    [0] => Array 
     (
      [company] => 
      [title] => 
      [year_begin] => 
      [year_finish] => 
      [country] => 
      [notes] => 
     ) 

) 

Wie kann ich es ein leeres Array machen zurückkehren, damit ich !empty() auf verwenden kann?

+0

Sie benötigen 'Bildung [0] [über]' ? Sie können einfach 'education [about]' etc .. verwenden. Dann 'array_filter()'. – AbraCadaver

+0

Ja, es wird mehrere gleiche Eingänge geben. –

Antwort

0

einfach die leere Elemente herauszufiltern und prüfen:

if(empty(array_filter($_POST['education'][0]))) { 
    // array is empty 
} 

Wenn Sie ein leeres Element überprüfen müssen, dann gilt:

if(count(array_filter($_POST['education'][0])) != count($_POST['education'][0])) { 
    // one or more elements are empty 
} 
Verwandte Themen