2016-11-20 94 views
1

Desired Output我想顯示一個來自php數組的html表單。我想(姓)輸入和(姓)輸入在一行中。我已經使用引導排類,但是它在單獨一行中斥責兩個輸入像來自php數組的HTML表格

 <div class="row">first name </div> 
     <div class="row">Last name </div> 

我會心存感激,如果任何人能幫助我解決這個問題!

<?php 

     $form = array(

        'fname' => array(
         'title' => 'First Name', 
         'type' => 'text', 
         'size' => '50', 
        ), 

        'lname' => array(
         'title' => 'Last Name', 
         'type' => 'text', 
         'size' => '50', 
        ), 

     'email' => array(
         'title' => 'Email', 
         'type' => 'email', 
         'class' => 'form-control', 
         'size' => '50', 

        ), 
     'submit' => array(
         'title' => 'Register', 
         'type' => 'submit', 
         'size' => '50', 
         'class' => 'form-control', 

        ), 
     ) 

      ?> 

     <form action="" method="post"> 
    <?php 

     foreach ($contact_form as $name => $elements) { 

      $label = '<label>' . $elements['title'] . '</label><br>'; 

      if ($elements['type'] == 'text') { 

       echo '<div class="row">'; 
       echo $label . '<input type="' . $elements['type'] . '" name="' . $name . '" size="' . $elements['size'] . '" >'; 
       echo '</div>'; 

      } elseif ($elements['type'] == 'email') { 
       echo '<div class="row">'; 
       echo $label . '<input type="' . $elements['type'] . '" name="' . $name . '" size="' . $elements['size'] . '">' . form_error($name) . '<br>'; 
       echo '</div>'; 

      }else{ 

       echo '<input type="' . $elements['type'] . '" name="' . $name . '" value="' . $elements['title'] . '" size="' . $elements['size'] . '">' ; 
      } 
     } 
    ?> 
</form> 
+0

_「我已經使用引導排類,但是它在單獨一行像斥責兩個輸入」 _好你能指望什麼了'row'類呢?你需要使用列http://getbootstrap.com/css/#grid – Turnip

+0

我想要兩個輸入在一行而不是單獨的行 – Abid

+0

我剛剛編輯了相同的結果形式 – Abid

回答

0

更新您的PHP數組以使用Bootstrap大小而不是百分比。我還做了一些其他的調整的...

$form = [ 
    [ 
     'title' => 'First Name', 
     'name' => 'first_name', 
     'type' => 'text', 
     'cols' => '6', 
    ], 
    [ 
     'title' => 'Last Name', 
     'name' => 'last_name', 
     'type' => 'text', 
     'cols' => '6', 
    ], 
    [ 
     'title' => 'Email', 
     'name' => 'email', 
     'type' => 'email', 
     'cols' => '6', 
    ], 
    [ 
     'title' => 'Register', 
     'type' => 'submit', 
     'cols' => '6', 
    ], 
] 

然後你就可以使用這些數據與foreach循環創建表單,

<div class="container"> 
    <form class="form-horizontal"> 

    <?php foreach ($form as $element): ?> 

     <div class="col-sm-<?= $element['cols'] ?>"> 

     <?php if ($element['type'] == 'submit): ?> 

      <button type="submit" class="btn btn-default"><?= $element['title'] ?></button> 

     <?php else: ?> 

      <div class="form-group"> 
      <label for="<?= $element['name'] ?>" class="col-sm-4 control-label"><?= $element['title'] ?></label> 
      <div class="col-sm-8"> 
       <input type="<?= $element['type'] ?>" class="form-control" id="<?= $element['name'] ?>" name="<?= $element['name'] ?>"> 
      </div> 
      </div> 

     <?php endif; ?> 

     </div> 

    <?php endforeach; ?> 

    </form> 
</div> 

未經測試,但不應該是遠關...

+0

hello Steve!我已經試過這個沒有PHP的foreach循環它工作正常,但是當我使用循環它分成兩行。 – Abid

+0

看起來很簡單,但我無法弄清楚 – Abid

+0

重寫了答案。 – Steve

0

您可以通過條件進行管理。

  foreach ($form as $name => $elements) { 
      if($name != 'lname'){ 
      echo '<div class="row">'; 
      } 
      // Code here 
      if($name != 'lname'){ 
      echo "</div>"; 
      } 

}