【问题标题】:Hiding/Showing Drop Down menus depending on another option根据另一个选项隐藏/显示下拉菜单
【发布时间】:2014-08-18 18:27:26
【问题描述】:

我正在努力做到这一点,当一个人从下拉菜单中选择一个选项时,会显示另一个下拉菜单。因此,如果我有一个包含 3 个选项的下拉菜单,“温哥华”、“新加坡”、“纽约”。当用户选择温哥华时,一个下拉菜单会显示几个选项,如果他们选择纽约,则会出现另一个淹没菜单出现了。为了让事情变得复杂,我还使用 php 作为它最终将在服务器端运行的东西。

echo "<script type=\"text/javascript\">";
echo "function getDropDown(sel){";
echo  "hideAll();";
echo  "document.getElementById(sel.options[sel.selectedIndex].value).style.display ";
echo  "= 'block';";
echo "}";

echo "function hideAll(){";
echo  "document.getElementById(\"vancouver\").style.display = 'none';";
echo  "document.getElementById(\"singapore\").style.display = 'none';";
echo  "document.getElementById(\"newyork\").style.display = 'none';";
echo "}";
echo "</script>";

echo    "<tr>"; 
        echo "<td align=\"right\">";
        echo "<td>";
            echo "<select name=\"optionDrop\" onChange=\"getDropDown(this)\">";
               echo "<option value=\"\">Please Select</option>";
                echo "<option value=\"vancouver\">Vancouver</option>";
                echo "<option value=\"singapore\">Singapore</option>";
                echo "<option value=\"newyork\">New York</option>";
            echo "</select>";
        echo "</td>";
    echo "</tr>";

echo "<tr>"; 
echo "<td align=\"right\">City</td>";
echo "<td>";
echo "<div id=\"vancouver\" style=\"display: none;\">";
            echo "<select name=\"optionDrop\" >";
                echo "<option value=\"\">Please Select</option>";

            echo "</select>";
            echo "</div>";

echo "<div id=\"singapore\" style=\"display: none;\">";
//echo "<select name=\"optionDrop2\">";
  //              echo "<option value=\"\">Please Select2</option>";
  echo "Sing";
echo "</div>";

echo "<div id=\"newyork\" style=\"display: none;\">";
  echo "New York";
echo "</div>";
echo "</td>";
echo "</td>";
echo "</tr>";

Right now when I select the option "Vancouver" a drop down menu does shot up, and when selected other options a text shows up.但是,如果我取消注释这些行

//echo "<select name=\"optionDrop2\">";
  //              echo "<option value=\"\">Please Select2</option>";

然后就没有任何效果了。无论我选择什么选项都没有显示。我完全被卡住了,无法弄清楚它有什么问题。

【问题讨论】:

  • 你为什么要这样写 html :( 让我难过
  • 您可以使用 jQuery 获取下拉列表的值,然后执行以下两项操作之一:(1) 动态创建另一个下拉列表,(2) 有一个 CSS 显示值为 none 的现有下拉列表设置为可见。 jQuery 将帮助您根据用户的响应构建表单。请,请,请不要回显您所有的 HTML。如果这是 PHP,只需正常输入 HTML。 PHP 页面可以像 HTML 页面一样编码 - 只需在使用 PHP 代码的地方严格使用 PHP 标记。

标签: javascript php html css


【解决方案1】:

嗯...首先我要给你一个提示,你可能在很多年前就已经乞求了:

关闭 php 文件中的 php 标记不会破坏您的代码。 如果您只想像在发布的代码中那样显示 HTML,只需执行以下操作:

<?php
    $variable = "test";
    // Some random things blabla.
?>
<span class="test">
    <?php echo $variable; ?>
</span>
<?php
    $something = "something_else";
    // Some other php
?>

关于你的问题,你去吧: http://codepen.io/anon/pen/GxytE

【讨论】:

  • 这正是我要找的!我唯一的问题是如何将 CSS 和 Jquery 文件组合在一起工作?
  • 我不明白你的问题是什么?你能解释更多吗?
  • 我得到了你给我看的链接中发生的一切。我只是不明白如何将这三个部分放在一起以使它们起作用
  • 是的,我打算使用您提供的内容作为参考来编写我需要的内容。我现在正在努力的实际上是使用你给我的工作。就像我不明白如何将 html、css 和 jquery 链接在一起来重现你给我的东西。
  • 只需在您的 PHP 文件中输出 HTML,将 CSS 放入您的样式表中,然后将 javascript 放在您想要的任何位置(尽管如果您在加载 html 之前放置它,则需要将它放在jQuery(document).ready(function(e){ /* Code here */ }); 代码 sn-p)。
猜你喜欢
  • 1970-01-01
  • 2016-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-02
  • 2017-10-06
  • 2012-08-06
  • 1970-01-01
相关资源
最近更新 更多