2015-11-17 3 views
2

Я создал раскрывающийся список с полями Labs, Paharmacy, Gym, Food. Когда я выберу из раскрывающегося списка Lab, оно создаст новое поле как «имя». Когда я выбираю поле аптеки, он должен показывать поле кнопки загрузки. Пожалуйста, предложите мне, как это сделать.Как сгенерировать поля, выбирая значения выпадающего списка?

Моей форма

<form action="<?php echo $this->getFormAction(); ?>" id="quickservice" method="post"> 
<div class="fieldset"> 
<ul class="form-list"> 
<li> 
      <label for="Servicetype" class="required"><em>*</em><?php echo $this->__('Service Type') ?></label> 
         <div class="input-box"> 
          <select name="servicetype" class="input-text required-entry validate-select" style="width: 150px;" /> 
            <option value=""><?php echo $this->__('--Please Select--')?></option> 
            <option value="Lab"><?php echo $this->__('Lab')?></option> 
            <option value="Hospital"><?php echo $this->__('Hospital')?></option> 
            <option value="Food"><?php echo $this->__('Food')?></option> 
            <option value="Gym"><?php echo $this->__('Gym')?></option> 
            <option value="Physio"><?php echo $this->__('Physio')?></option> 
            <option value="Nurse"><?php echo $this->__('Nurse')?></option> 
          </select> 
         </div> 

      </li> 
</ul> 
<div class="button"> 
    <p class="required"><?php echo $this->__('* Required Fields') ?></p> 
    <button id= "submit" type="submit" class="button" title="<?php echo $this->__('Submit') ?>" name="send" id="send2"><span><span><?php echo $this->__('Submit') ?></span></span></button> 
</div> 
    </div> 
    </form> 
+0

Либо вам нужно Javascript, чтобы сделать это в той же странице или вы должны представить форму каждый раз, чтобы сделать это, если вы хотите только с PHP – Thamilan

+0

, когда я представляю, что должен отправить mail.But при выборе любого из из раскрывающегося списка необходимо отобразить новое текстовое поле. – Mouni

+0

Для этого вам нужно использовать JQuery или javascript, PHP - это сценарий на стороне сервера, который выполняется до того, как ваша страница генерирует – Thamilan

ответ

1

Если вы хотите, чтобы показать/скрыть некоторую конкретную область о выборе опции и вы не хотите, чтобы страница обновления, вы должны использовать код JavaScript, так, например, если вы хотите показать поле загрузки на выбор «Лаборатории» значение, которое вы могли бы сделать это следующим образом:

<!doctype html> 
<head> 
    <script> 
     function showHidden(elem){ 
      if(elem.value == 'Lab') 
       document.getElementById('fileToUpload').style.display = "block"; 
      else 
       document.getElementById('fileToUpload').style.display = "none"; 
     } 
    </script> 

</head> 
<body> 
<form action="<?php echo $this->getFormAction(); ?>" id="quickservice" method="post" enctype="multipart/form-data"> 
    <div class="fieldset"> 
     <ul class="form-list"> 
      <li> 
      <label for="Servicetype" class="required"><em>*</em><?php echo $this->__('Service Type') ?></label> 
       <div class="input-box"> 
        <select id='servicetype' onchange="showHidden(this)" name="servicetype" class="input-text required-entry validate-select" style="width: 150px;" /> 
          <option value=""><?php echo $this->__('--Please Select--')?></option> 
          <option value="Lab" id='lab'><?php echo $this->__('Lab')?></option> 
          <option value="Hospital"><?php echo $this->__('Hospital')?></option> 
          <option value="Food"><?php echo $this->__('Food')?></option> 
          <option value="Gym"><?php echo $this->__('Gym')?></option> 
          <option value="Physio"><?php echo $this->__('Physio')?></option> 
          <option value="Nurse"><?php echo $this->__('Nurse')?></option> 
        </select> 
       </div> 
      </li> 
     </ul> 
     <div id="fileToUpload" style='display: none;'> 
      <input type="file" name="fileToUpload" /> 
     </div> 
     <div class="button"> 
      <p class="required"><?php echo $this->__('* Required Fields') ?></p> 
      <button id= "submit" type="submit" class="button" title="<?php echo $this->__('Submit') ?>" name="send" id="send2"><span><span><?php echo $this->__('Submit') ?></span></span></button> 
     </div> 
    </div> 
</form> 
</body> 

и если вы хотите, чтобы показать/скрыть больше полей, вы можете использовать ту же логику!

<!doctype html> 
<head> 
    <script> 
     function showHidden(elem){ 
      if(elem.value == 'Lab') 
      { 
       document.getElementById('fileToUpload').style.display = "block"; 
       document.getElementById('city_name').style.display = "none"; 
      } 
      else if(elem.value == 'Hospital') 
      { 
       document.getElementById('city_name').style.display = "block"; 
       document.getElementById('fileToUpload').style.display = "none"; 
      } 
      else 
      { 
       document.getElementById('fileToUpload').style.display = "none"; 
       document.getElementById('city_name').style.display = "none"; 
      } 
     } 
    </script> 

</head> 
<body> 
<form action="<?php echo $this->getFormAction(); ?>" id="quickservice" method="post" enctype="multipart/form-data"> 
    <div class="fieldset"> 
     <ul class="form-list"> 
      <li> 
      <label for="Servicetype" class="required"><em>*</em><?php echo $this->__('Service Type') ?></label> 
       <div class="input-box"> 
        <select id='servicetype' onchange="showHidden(this)" name="servicetype" class="input-text required-entry validate-select" style="width: 150px;" /> 
          <option value=""><?php echo $this->__('--Please Select--')?></option> 
          <option value="Lab" id='lab'><?php echo $this->__('Lab')?></option> 
          <option value="Hospital"><?php echo $this->__('Hospital')?></option> 
          <option value="Food"><?php echo $this->__('Food')?></option> 
          <option value="Gym"><?php echo $this->__('Gym')?></option> 
          <option value="Physio"><?php echo $this->__('Physio')?></option> 
          <option value="Nurse"><?php echo $this->__('Nurse')?></option> 
        </select> 
       </div> 
      </li> 
     </ul> 
     <div id="fileToUpload" style='display: none;'> 
      <input type="file" name="fileToUpload" /> 
     </div> 
     <div id="city_name" style='display: none;'> 
      <input type="text" name="city" /> 
      <input type="text" name="name" /> 
     </div> 
     <div class="button"> 
      <p class="required"><?php echo $this->__('* Required Fields') ?></p> 
      <button id= "submit" type="submit" class="button" title="<?php echo $this->__('Submit') ?>" name="send" id="send2"><span><span><?php echo $this->__('Submit') ?></span></span></button> 
     </div> 
    </div> 
</form> 
</body> 
+0

Не можем ли мы сделать javacsript, поскольку jquery не будет работать для нас. – Mouni

+0

Я отредактировал мое сообщение для чистого JavaScript ... Удачи;) @Mouni –

+0

Хорошо, выбрав больницу, он должен добавить новые текстовые поля, как Name, City.Can, пожалуйста, измените для него – Mouni