javascript - php中如何获取组合框的值

标签 javascript php html combobox

我试图根据来自数据库的预选选项使组合框的选项消失。

当我之前问过同样的问题时,我想到了使用两个组合框,并且根据第一个组合框的值,第二个组合框上的选项将会消失。这确实有效,但 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,因为我们在工作中并没有真正使用它......

最佳答案

在 PHP 中 switch 的正确实现是这样的:

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。

关于javascript - php中如何获取组合框的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37866713/

相关文章:

javascript - 我的 Show or Hide DIV on radio input click 有问题

javascript - 带有滚动条的 Div 内部带有溢出的 :hidden

php - Laravel 启动函数不从命名空间内部调用

javascript - 如何使用 Redux-Saga 处理 fetch() 响应中的错误?

javascript - 在 Facebook 上分享图片给我错误

php - 在 php 中打印 <<< HTML?

php - Bootstrap 轮播问题 - 仅在查看时加载图像?

javascript - 如何为 HTML Audio 元素添加点击/鼠标按下事件

javascript - HTML5 websockets 与可访问性标准的兼容性如何?

html - iPhone 模拟器中的元标记问题