使用PHP Switch/Case Breaks CSS的下拉菜单


Drop Down Menu using PHP Switch/Case Breaks CSS

我的最新网站Preventions(10月29日开通)有一个词汇表页面。目标是使用任何下拉菜单来显示有关我在最新篮球指标中使用的一个术语的更多信息。

有一个大问题:每次我使用下拉菜单切换到该页面时,CSS和所有关联的图像都会被破坏。结果变成了一个没有样式的页面。即使通过Firebug功能进行调试也无法工作。

以下是有问题页面的直接链接:http://preventions.wammyradio.com/glossary

说明:只需进入积分预防下拉菜单,选择"射击比赛"。这是我唯一准备充分的链接,因为我还没有实现该页面上的其他链接。

所有下拉菜单中的内容都将与您在下面看到的内容类似。请忽略转义引号,我在PHP脚本内和PHP外都尝试过纯HTML:

<FORM>
<SELECT onChange='"location=this.options[this.selectedIndex].value;'">
 <OPTION selected class='"Title'">Point Preventions</OPTION>
 <OPTION value='"glossary/shotcon'">Shot Contest</OPTION>
 <OPTION value='"shotblk'">Shot Block</OPTION>
 <OPTION value='"shotstl'">Shot Steal</OPTION>
 <OPTION value='"shotoff'">Shot Charge</OPTION>
 <OPTION value='"shotvoid'">Shot Void</OPTION>
</SELECT></FORM>

到目前为止,这里是唯一使用PHP的代码。请忽略break命令,因为这很可能会从网站上删除:

$term = $_GET['term'];
switch ($term) {
    case "shotcon":
        include('dictionary/shotcon.txt');
        break;
    default:
        break;
}

我如何修改我的下拉菜单,以便在我选择一个选项后刷新页面时,CSS不会受到伤害?

编辑

感谢Tom Hoang为我提供了一个变通方法。但现在,一个新的问题出现了。当我对代码进行微调和测试时,我注意到"射击比赛"之前的链接都不起作用。但如果我先选择"射击比赛",然后选择另一个选项后记,动作会按要求进行。直到那时我才注意到这一点,但脚本确实会查找URL"preventions.wammyradio.com/glossary/glossary/term"。因此,很明显,每次使用菜单访问术语时,下拉菜单都会在URL的末尾添加另一个"glossary/"。

奇怪的是,如果我把受影响的行改成这样:

<OPTION value='"shotcon'">Shot Contest</OPTION>

我选择了这个或任何其他选项,这些选项都不起作用。

我需要找到一种方法来重写URL,这样它就不会这么做了。我会进一步研究我的编码,但我认为如果Tom的变通方法可以用于样式、JS文件和徽标图像,那么肯定有一个代码可以正确地修剪或粘贴"glossary"目录。

该URL仍然可以进行演示。

将method="GET"添加到表单标记中
将name="term"添加到您的选择标签中。

例如<FORM method="GET">
<SELECT name="term"onChange=''"location=this.options[this.selectedIndex].value;''">

我想你希望它看起来像这样:http://preventions.wammyradio.com/glossary?term=shotcon

编辑

$term = $_GET['term'];
if($term != '')
    $style = "../style.css";
else
    $style = "style.css";

然后在html中添加样式表时,

<link rel="stylesheet" type="text/css" href="<?php echo $style; ?>">

EDIT2

如果有术语,则忽略选项值的词汇表/部分。如果缺少术语,请将词汇表/部分包含在选项值中。

$term = $_GET['term'];
if($term != '')
{
    $style = "../style.css";
    $dropdowns = '
     <table id="GlossaryBanner"><tbody><tr>
       <td align="center">
        <form method="GET">
          <select name="term" onchange="location=this.options[this.selectedIndex].value;">
            <option selected="" class="Title">Point Preventions</option>
            <option value="shotcon">Shot Contest</option>
            <option value="shotblk">Shot Block</option>
            <option value="shotstl">Shot Steal</option>
            <option value="shotoff">Shot Charge</option>
            <option value="shotvoid">Shot Void</option>
         </select>
       </form>
     </td>
     <td align="center">
       <form>
         <select onchange="location=this.options[this.selectedIndex].value;">
           <option selected="" class="Title">Possession Preventions</option>
           <option value="posstl">Possession Steal</option>
           <option value="posoff">Possession Charge</option>
           <option value="posvoid">Possession Void</option>
           <option value="posclk">Possession Clock</option>
           <option value="posorb">Possession Rebound</option>
         </select></form>
     </td>
     <td align="center">
       <form>
         <select onchange="location=this.options[this.selectedIndex].value;">
           <option selected="" class="Title">Assist Preventions</option>
           <option value="aststl">Assist Steal</option>
           <option value="astoff">Assist Charge</option>
           <option value="astvoid">Assist Void</option>
         </select>
       </form>
     </td>
     <td align="center">
       <form>
         <select onchange="location=this.options[this.selectedIndex].value;">
           <option selected="" class="Title">Other</option>
           <option value="screen">Screen / Pick</option>
           <option value="setup">Set-up / Hockey Assist</option>
           <option value="save">Possession Save</option>
           <option value="delayblk">Shot Block Delay</option>
           <option value="delaydef">Deflection Delay</option>
           <option value="delayjmp">Jump Ball Delay</option>
           <option value="help">Help (Tally)</option>
           <option value="foul">Foul (Tally)</option>
           <option value="assign">Assignment (Tally)</option>
         </select>
       </form>
     </td></tr></tbody></table>';
}
else
{
    $style = "style.css";
    $dropdowns = '
     <table id="GlossaryBanner"><tbody><tr>
       <td align="center">
        <form method="GET">
          <select name="term" onchange="location=this.options[this.selectedIndex].value;">
            <option selected="" class="Title">Point Preventions</option>
            <option value="glossary/shotcon">Shot Contest</option>
            <option value="glossary/shotblk">Shot Block</option>
            <option value="glossary/shotstl">Shot Steal</option>
            <option value="glossary/shotoff">Shot Charge</option>
            <option value="glossary/shotvoid">Shot Void</option>
         </select>
       </form>
     </td>
     <td align="center">
       <form>
         <select onchange="location=this.options[this.selectedIndex].value;">
           <option selected="" class="Title">Possession Preventions</option>
           <option value="glossary/posstl">Possession Steal</option>
           <option value="glossary/posoff">Possession Charge</option>
           <option value="glossary/posvoid">Possession Void</option>
           <option value="glossary/posclk">Possession Clock</option>
           <option value="glossary/posorb">Possession Rebound</option>
         </select></form>
     </td>
     <td align="center">
       <form>
         <select onchange="location=this.options[this.selectedIndex].value;">
           <option selected="" class="Title">Assist Preventions</option>
           <option value="glossary/aststl">Assist Steal</option>
           <option value="glossary/astoff">Assist Charge</option>
           <option value="glossary/astvoid">Assist Void</option>
         </select>
       </form>
     </td>
     <td align="center">
       <form>
         <select onchange="location=this.options[this.selectedIndex].value;">
           <option selected="" class="Title">Other</option>
           <option value="glossary/screen">Screen / Pick</option>
           <option value="glossary/setup">Set-up / Hockey Assist</option>
           <option value="glossary/save">Possession Save</option>
           <option value="glossary/delayblk">Shot Block Delay</option>
           <option value="glossary/delaydef">Deflection Delay</option>
           <option value="glossary/delayjmp">Jump Ball Delay</option>
           <option value="glossary/help">Help (Tally)</option>
           <option value="glossary/foul">Foul (Tally)</option>
           <option value="glossary/assign">Assignment (Tally)</option>
         </select>
       </form>
     </td></tr></tbody></table>';
}

然后在的适当位置包含$dropdowns变量

<?php echo $dropdowns; ?>