2015-04-23 32 views
0

如何在窗體中的下拉選擇框中添加「請選擇一個選項」作爲默認顯示選項。表單下拉選擇類型的佔位符?

我正在修改一個magento模塊,在前端的一些新輸入惡魔中添加它,並將其保存到magento數據庫中的表中。表單可以正確地將信息保存到數據庫,但它始終顯示數組中用於列出選項的第一項。所以如果用戶沒有改變選項,那麼array [0]將被添加到數據庫中。我想添加一個不會被添加到數據庫的佔位符,所以它會提示用戶選擇一個選項。

這是被稱爲信息:

$fields[] = array(
     'name'  => 'vehicle_make', 
     'label' => Mage::helper('sublogin')->__('Make'), 
     'required' => true, 
     'type'  => 'select', 
     'style' => 'width:100px', 
     'cssclass' => '', 
     'options' => array ("Acura", "Alfa Romeo","Audi", "BMW", "Buickm", "Cadillac", "Chevrolet", "Chrysler", "Dodge", "FIAT", "Ford", "GMC", "Honda", "Hyundai", "Infiniti", "Jaguar", "Jeep", "Kia", "Land Rover", "Lexus", "Lincoln", "Maserati", "Mazda", "Mercedes-Benz", "MINI", "Mitsubishi", "Nissan", "Porsche", "Ram", "Scion", "Smart", "Subaru", "Suzuki", "Toyota", "Volkswagen", "Volvo", "Yamaha"), 
    ); 

這是用來顯示輸入字段:

if ($formField['type'] == 'select' || $formField['type'] == 'multiselect') 
        { 
         $selectedOptions = $sublogin->getData($formField['name']); 
         $selectedOptions = explode(',', $selectedOptions); 
         ?> 
         <select 
          <?php echo ($formField['type'] == 'multiselect')?"multiple=multiple":""; ?> 
          id="<?php echo $formField['name'] ?>" 
          name="<?php echo ($formField['type'] == 'multiselect')? $formField['name'].'[]':$formField['name'] ?>"> 
         <?php foreach ($formField['options'] as $optionValue => $optionLabel) { 
          $selected = ''; 
          if (in_array($optionValue, $selectedOptions)) 
           $selected = 'selected';        

          echo '<option '.$selected.' value="'.$optionValue.'">'.$optionLabel.'</option>'; 
         } ?> 
         </select> 

vehicle make

+0

你問一個關於'select'的問題,但是你提供了一個'input'的代碼? – Sean

+0

@Sean,但它不被認爲是一個選擇輸入字段?我確實讓我誤會了我顯示的第一個代碼,現在已經更正。 – Nxlevel

+0

對於選擇框,您只需將第一項下拉菜單作爲「選擇選項」即可。 –

回答

0

在你上面的代碼

<select 
          <?php echo ($formField['type'] == 'multiselect')?"multiple=multiple":""; ?> 
          id="<?php echo $formField['name'] ?>" 
          name="<?php echo ($formField['type'] == 'multiselect')? $formField['name'].'[]':$formField['name'] ?>"> 
         <?php foreach ($formField['options'] as $optionValue => $optionLabel) { 
          $selected = ''; 
          if (in_array($optionValue, $selectedOptions)) 
           $selected = 'selected';        

          echo '<option '.$selected.' value="'.$optionValue.'">'.$optionLabel.'</option>'; 
         } ?> 
         </select> 

添加默認選項之前這樣的foreach

<select 
          <?php echo ($formField['type'] == 'multiselect')?"multiple=multiple":""; ?> 
          id="<?php echo $formField['name'] ?>" 
          name="<?php echo ($formField['type'] == 'multiselect')? $formField['name'].'[]':$formField['name'] ?>"> 
//added this line of code 
          <option name="please-select" value="100">Please select an option</option> 
         <?php foreach ($formField['options'] as $optionValue => $optionLabel) { 
          $selected = ''; 
          if (in_array($optionValue, $selectedOptions)) 
           $selected = 'selected';        

          echo '<option '.$selected.' value="'.$optionValue.'">'.$optionLabel.'</option>'; 
         } ?> 
         </select> 

您可以使用任何值和名稱爲此。現在使用可以使用JavaScript來驗證它。

希望這會有所幫助。