2016-06-16 5 views
1

Я пытаюсь удалить параметры combobox в зависимости от выбранного параметра, который поступает из базы данных.Как получить значение из combobox в php

Когда я задал этот вопрос раньше, мне была дана идея использовать два comboboxes, и в зависимости от значения первого, параметры на втором исчезнут. И это сработало, но проблема с функцией Jscript заключается в том, что я должен называть ее событием onchange, что означает, что ее нельзя было предварительно загрузить с предыдущей страницы.

Раньше выглядеть следующим образом:

<select name="cbostatusHide" id="cbostatusHideID" onchange="getDropDown()"> 
       <option selected "" ></option> 
       <option value="Planned"<?php if ($row['task_status']=='Planned') echo 'selected="selected"';?>>Planned</option> 
       <option value="Started"<?php if ($row['task_status']=='Started') echo 'selected="selected"';?>>Started</option> 
       <option value="Available"<?php if ($row['task_status']=='Available') echo 'selected="selected"';?>>Available</option> 
       <option value="Impeded" <?php if ($row['task_status']=='Impeded') echo 'selected="selected"';?>>Impeded</option> 
       <option value="Finished"<?php if ($row['task_status']=='Finished') echo 'selected="selected"';?>>Finished</option> 
       </select> 
       </td> 
       </tr> 

       <tr> 
       <td> 
       <select name="cbostatus" id="cbostatusID"> 
       <option selected "" ></option> 
       <option value="1" <?php if ($row['task_status']=='Planned') echo 'selected="selected"';?>>Planned</option> 
       <option value="2" <?php if ($row['task_status']=='Started') echo 'selected="selected"';?>>Started</option> 
       <option value="3" <?php if ($row['task_status']=='Available') echo 'selected="selected"';?>>Available</option> 
       <option value="4" <?php if ($row['task_status']=='Impeded') echo 'selected="selected"';?>>Impeded</option> 
       <option value="5" <?php if ($row['task_status']=='Finished') echo 'selected="selected"';?>>Finished</option> 
       </select> 
       </td> 
       </tr> 

И функции:

function getDropDown() { 
    var optionDrop = document.getElementById("cbostatusHideID"); 
    var numberDrop = document.getElementById("cbostatusID"); 

    if (optionDrop.options[optionDrop.selectedIndex].value == "Planned" || optionDrop.options[optionDrop.selectedIndex].value == "Started" || optionDrop.options[optionDrop.selectedIndex].value == "Available"){ 

     numberDrop.options[4].style.display = "none"; 

}else if (optionDrop.options[optionDrop.selectedIndex].value == "Impeded" || optionDrop.options[optionDrop.selectedIndex].value == "Finished"){    
       numberDrop.options[4].style.display = "block"; 
      } 
      } 

То, что это сделал было сделать «ВОСПРЕПЯТСТВОВАЛА» вариант недоступен, когда я выбрал либо «Начало», «Запланированные "или" Доступно ".

Но, если у вас возникли трудности, которые я объяснил в начале вопроса, я решил применить ту же логическую концепцию, но с использованием коммутаторов в PHP.

Большая проблема в том, что я являюсь абсолютным новичком на PHP, и я не знаю, как это сделать должным образом, поэтому он не работает. Вот что немного шарить вокруг заставил меня:

    <?php 
       switch (cbostatusHideID.selectedIndex) 
       {    
        case $row['task_status'] == 'Planned'; 
         cbostatus.option[4].style.display = "none"; 
       } 
       ?> 

Как вы более опытных пользователей PHP, вероятно, может сказать, это не работает. Итак, как мне изменить его и превратить в правильный переключатель?

Кроме того, пожалуйста, не предлагают использовать Jquery, как мы не используем его здесь на работе ...

ответ

1

Правильная реализация switch в PHP, как это:

switch ($i) { 
    case 0: 
     echo "i equals 0"; 
     break; 
    case 1: 
     echo "i equals 1"; 
     break; 
    case 2: 
     echo "i equals 2"; 
     break; 
} 

Так , вам нужно изменить код:

<?php 
switch ($row['task_status']) {    
    case 'Planned': 
     // do your stuff 
} 
?> 

и вы не можете использовать JavaScript и PHP вместе так, как вы пытаетесь сделать в вашем примере кода.

+0

О, хорошо, я понимаю, но в этом случае, как я могу выбрать значение combobox, которое я хочу отключить в коммутаторе? – RazorFinger

Смежные вопросы