【问题标题】:How can I assign my input's value to my array?如何将输入的值分配给我的数组?
【发布时间】:2017-05-17 21:57:35
【问题描述】:

用户将键入他们想要的团队数量,并且该数量的输入将显示在屏幕上以供用户键入。我已经这样做了。但是我想将输入的值分配给我的数组元素,例如 for 循环中的 $teams[$i]=$_GET['team'.$i.''] 。这样,我可以看到用户输入的数组元素。我试图用 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>' ;
                    }


                }


 ?>

【问题讨论】:

  • 像这样if( in_array($teamnumber, array(1,3,5))) etc.
  • $teamnumber 不是数组元素。该变量仅用于获取我输入值的值。我的数组元素必须是 for 循环中输入的值。这不是我的答案,但无论如何谢谢。
  • 我知道$teamnumber 不是一个数组。您可以检查$teamnumber 的值是否在数字数组中。这使您的 if 语句更易于维护和阅读
  • 我明白你的意思。感谢您的提示。

标签: php arrays for-loop input


【解决方案1】:

您直接将 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
}

【讨论】:

  • 谢谢你缩短了我的代码,伙计。这看起来比以前好多了。但这不是我的答案。
  • 我的代码 fecths 数据并且有效,因为我可以在地址栏上看到输入的数据。但是我仍然看不到显示器上的数据,这很尴尬:(
猜你喜欢
  • 2013-11-20
  • 2022-12-05
  • 2022-11-27
  • 1970-01-01
  • 1970-01-01
  • 2019-11-06
  • 1970-01-01
  • 2017-03-01
  • 1970-01-01
相关资源
最近更新 更多