【发布时间】:2017-05-17 21:57:35
【问题描述】:
用户将键入他们想要的团队数量,并且该数量的输入将显示在屏幕上以供用户键入。我已经这样做了。但是我想将输入的值分配给我的数组元素,例如 for 循环中的 $teams[$i]=$_GET['team'.$i.''] 。这样,我可以看到用户输入的数组元素。我试图用 for 循环在我的代码中分配它们。但我看不到我想要的结果。有任何语法错误,但我相信,我犯了逻辑错误。任何人都可以帮忙吗?提前感谢您的帮助。
<form method="get" name="teamNumber" style="margin:auto;">
<label>Competition Name:
<input type="textbox" name="competitionName"/></br></br>
</label>
<label>How many teams you want to add:
<input type="textbox" name="teamnumber"/></br></br>
</label>
<input type="submit" name="sub" value="Create Teams!"/></br></br>
</form>
<?php
$competitionName=$_GET['competitionName'];
$teamnumber=$_GET['teamnumber'];
$submit=$_GET['sub'];
$draw=$_GET['draw'];
$teams=array();
if(isset($submit))
{
if ( $teamnumber==1||$teamnumber==3||$teamnumber==5||$teamnumber==6||$teamnumber==7||$teamnumber==9||$teamnumber==11||$teamnumber==13||$teamnumber==14||
$teamnumber==15||$teamnumber==17||$teamnumber==18||$teamnumber==19||$teamnumber==20||$teamnumber==21||$teamnumber==22||
$teamnumber==23||$teamnumber==24||$teamnumber==25||$teamnumber==26||$teamnumber==27||$teamnumber==28||$teamnumber==29||
$teamnumber==30||$teamnumber==31 /* && $teamnumber>32 */ )
{
echo '<p>'.'You typed invalid team number'.'</p>' ;
}
else{
echo '<form method="get" name="addTeam">';
for($i=1;$i<=$teamnumber;$i++)
{
echo '<label> <input type="textbox" name="team'.$i.'" value=" Team'.$i.'"/> </label> <br> <br>' ;
}
switch($teamnumber)
{
case $teamnumber==2:
echo '<label> <input type="submit" value="Draw Final Round" name="draw"> </label>'. '</form>';
break;
case $teamnumber>3 && $teamnumber<=4:
echo '<label> <input type="submit" value="Draw Semi-Finals Round" name="draw"> </label>'. '</form>';
break;
case $teamnumber>4 && $teamnumber<=8:
echo '<label> <input type="submit" value="Draw Quarter-Finals Round" name="draw"> </label>'. '</form>';
break;
case $teamnumber>8 && $teamnumber<=16:
echo '<label> <input type="submit" value="Draw 16 Round" name="draw"> </label>'. '</form>';
break;
case $teamnumber>16 && $teamnumber<=32:
echo '<label> <input type="submit" value="Draw 32 Round" name="draw"> </label>'. '</form>';
break;
}
}//end of else
}// end of if
if(isset($draw))
{
echo '<p>'.$competitionName.'</p>' ;
for($j=1;$j<=$teamnumber;$j++)
{
$teams[$j]=$_GET['team'.$j.''];
echo '<p> Team'.$j.':'.$teams[$j].'</p>' ;
}
}
?>
【问题讨论】:
-
像这样
if( in_array($teamnumber, array(1,3,5)))etc. -
$teamnumber 不是数组元素。该变量仅用于获取我输入值的值。我的数组元素必须是 for 循环中输入的值。这不是我的答案,但无论如何谢谢。
-
我知道
$teamnumber不是一个数组。您可以检查$teamnumber的值是否在数字数组中。这使您的 if 语句更易于维护和阅读 -
我明白你的意思。感谢您的提示。