【发布时间】:2015-08-26 18:57:56
【问题描述】:
我正在编写一个包含 2 个基本输入标签的脚本。当您选择一个季节时,其中一个命名为“季节”,另一个命名为“情节”,例如第 2 季将通过使用 Java 脚本将显示样式更改为阻止来显示 Episode 输入标签。然后,您对 Episode 输入标签执行相同操作,但这次它显示一个带有点击事件链接的按钮。
我试图让添加到每个按钮的链接变得更加容易。目前我已经设置好了,因此 MySQL 中有 30 个“dls1e”部分,其中包含下载链接。
我遇到的问题是,为此编写大量的 if 语句是一件非常痛苦的事情。
代码:
//Season Changer Script
if($seasonscript!='') {echo $seasonscript;} else {echo '<p>An error has occured. (Error: #01 - No season script is present for this show.)</p>';}
//Episodes Script
if($episodescript!='') {echo $episodescript;} else {echo '<p>An error has occured. (Error: #02 - No episode script is present for this show.)</p>';}
//720p Download Buttons
//if($l720p!='') {echo $l720p;}
?>
<form method="POST" action="" class="pure-form" style="color: #000;">
<fieldset class="pure-group">
<h2 style="color: #fff; display:inline-block">Season</h2>
<select style="display: inline-block; width: 50%;" id="selectseason" onchange="javascript:seasonChange()">
<?php if($seasoncount!='') {echo $seasoncount;} else {echo '<option>There are no seasons ready for this TV Show.</option>';} ?>
</select>
</fieldset>
<?php
if($episodescript = 'Season1') {
echo '<fieldset style="display: none;" id="season1episodes" class="pure-group">';
echo '<h2 style="color: #fff; display:inline-block">Episode</h2>';
echo '<select style="display: inline-block; width: 50%;" id="selectseason1episode" onload="javascript:season1episodesChange()" onchange="javascript:season1episodesChange()">'.$season1episodes.'</select>';
echo '<span id="s1buttons">';
if($dls1e1 != '') {echo '<button id="season1episode1" type="button" onclick="window.open(\'http://example.com?url='.$dls1e1.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 1</button>';}
if($dls1e2 != '') {echo '<button id="season1episode2" type="button" onclick="window.open(\'http://example.com?url='.$dls1e2.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 2</button>';}
if($dls1e3 != '') {echo '<button id="season1episode3" type="button" onclick="window.open(\'http://example.com?url='.$dls1e3.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 3</button>';}
if($dls1e4 != '') {echo '<button id="season1episode4" type="button" onclick="window.open(\'http://example.com?url='.$dls1e4.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 4</button>';}
if($dls1e5 != '') {echo '<button id="season1episode5" type="button" onclick="window.open(\'http://example.com?url='.$dls1e5.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 5</button>';}
if($dls1e6 != '') {echo '<button id="season1episode6" type="button" onclick="window.open(\'http://example.com?url='.$dls1e6.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 6</button>';}
if($dls1e7 != '') {echo '<button id="season1episode7" type="button" onclick="window.open(\'http://example.com?url='.$dls1e7.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 7</button>';}
if($dls1e8 != '') {echo '<button id="season1episode8" type="button" onclick="window.open(\'http://example.com?url='.$dls1e8.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 8</button>';}
if($dls1e9 != '') {echo '<button id="season1episode9" type="button" onclick="window.open(\'http://example.com?url='.$dls1e9.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 9</button>';}
if($dls1e10 != '') {echo '<button id="season1episode10" type="button" onclick="window.open(\'http://example.com?url='.$dls1e10.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 10</button>';}
if($dls1e11 != '') {echo '<button id="season1episode11" type="button" onclick="window.open(\'http://example.com?url='.$dls1e11.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 11</button>';}
if($dls1e12 != '') {echo '<button id="season1episode12" type="button" onclick="window.open(\'http://example.com?url='.$dls1e12.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 12</button>';}
if($dls1e13 != '') {echo '<button id="season1episode13" type="button" onclick="window.open(\'http://example.com?url='.$dls1e13.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 13</button>';}
if($dls1e14 != '') {echo '<button id="season1episode14" type="button" onclick="window.open(\'http://example.com?url='.$dls1e14.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 14</button>';}
if($dls1e15 != '') {echo '<button id="season1episode15" type="button" onclick="window.open(\'http://example.com?url='.$dls1e15.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 15</button>';}
if($dls1e16 != '') {echo '<button id="season1episode16" type="button" onclick="window.open(\'http://example.com?url='.$dls1e16.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 16</button>';}
if($dls1e17 != '') {echo '<button id="season1episode17" type="button" onclick="window.open(\'http://example.com?url='.$dls1e17.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 17</button>';}
if($dls1e18 != '') {echo '<button id="season1episode18" type="button" onclick="window.open(\'http://example.com?url='.$dls1e18.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 18</button>';}
if($dls1e19 != '') {echo '<button id="season1episode19" type="button" onclick="window.open(\'http://example.com?url='.$dls1e19.'&ref='.$imdbid.'\');" class="pure-button pure-input-1-2 pure-button-primary" style="display: none;">Download Episode 19</button>';}
echo '</span></fieldset>';
}
?>
</form>
从代码中可以看出,我强制使用 30 个 if 语句来检查 dls1e 中是否有下载链接,如果有,则输出一个按钮并附加一个链接。
有没有办法让它检查使用更少的 if 语句或能够使用更少的 MySQL 列来将不同的链接应用于不同的按钮?
大约 2 到 3 个月前,我有一个脚本为我执行此操作,但不知道发生了什么事,我找不到从哪里得到它。
如果有人能帮我解决这个问题,我将不胜感激。
更新: 我删除了我拥有的 19 个 dls1e,并将我保留的第 30 个重命名为 s1episodes。如图所示:https://gyazo.com/aed3cd627f173f01c8871dd64ae7aa16
然后我在 s1episodes 上使用了 explode():
$s1ep = explode("~", $s1episodes);
所以现在 s1ep[0] 是链接 1 (dls1e1),s1ep[1] 是链接 2 (dls1e2) 等等,我现在只需要一个循环来基本上执行 19 个 if 语句正在执行的操作。
【问题讨论】:
-
您可以使用一列并在其中放置一个包含所有信息的序列化数组,然后循环遍历它。
-
或者您可以为此目的制作一张表,您只需要一个唯一的 ID 将条目连接到系列表中的一行。
-
序列化是什么意思?我确实了解拥有一个可能会正常工作的数组。但我会等到其他人有任何解决方案。
-
你应该弄清楚循环是如何工作的 :-)