2017-01-03 109 views
0

用户可以键入他们想要的团队数量,并且输入的数量将显示在屏幕上以便从用户输入。我已经做到了。但是我想将输入的值赋给我的数组元素,如$ loops [$ i] = $ _ GET ['team'。$ i。''] for for循环。这样,我可以看到我的数组由用户输入的元素。我试图在我的代码中将它们分配给for循环。但是我看不到我想要的结果。有任何语法错误,但我相信,我做了逻辑错误。任何人都可以帮忙吗?预先感谢您的帮助。如何将我的输入值分配给我的数组?

 <form method="get" name="teamNumber" style="margin:auto;"> 
     <label>Competition Name:&nbsp; 
       <input type="textbox" name="competitionName"/></br></br> 
      </label> 
      <label>How many teams you want to add:&nbsp; 
       <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>' ; 
        } 


       } 


?> 
+0

你为什么不使我们的,如果这样的'如果(in_array($ teamnumber,阵列(1,3,5)))'等 – SuperDJ

+0

$ teamnumber不是数组元素。该变量仅用于获取我输入值的值。我的数组元素必须是for循环中输入的值。这不是我的答案,但无论如何感谢。 –

+0

我知道'$ teamnumber'不是一个数组。你可以检查'$ teamnumber'的值是否在数组数组中。这使得你的陈述方式更容易维护和阅读 – SuperDJ

回答

0

您将GET值直接传递给变量而不检查是否设置。这会导致错误。

尝试这样的事情。

if (isset($_GET['sub'])) { 
    if(!isset($_GET['competitionName']) || !isset($_GET['competitionName'])) { 
    echo 'Your Error Message'; 
    } 
    else { 
     $competitionName=$_GET['competitionName']; 
     $teamnumber=$_GET['teamnumber']; 
     $submit=$_GET['sub']; 
     //$draw=$_GET['draw']; 
     $teams=array(); 

     if($teamnumber % 2 == 0) { 
     //Code to be executed. switch statement and form in your case. 
     } 
     else { 
     //warn user when input value is odd. 1,3,5,7 etc 
     echo '<p>'.'You typed invalid team number'.'</p>' ; 
     } 
    } 
    // Code to be executed here. in your case for loop 
} 
+0

谢谢你缩短了我的代码,男人。那看起来好多了。但这不是我的答案。 –

+0

我的代码适用于这些数据,因为我可以在地址栏上看到输入的数据,但我仍然无法看到我的显示器上的数据很尴尬:( –

相关问题