2014-12-15 5 views
0

하나의 양식으로 8 개 팀에 점수를 입력 해주십시오. 양식을 제출 한 후에 가장 높은 점수를 얻고 비교하고 싶습니다. 양식을 만들었지 만 약간의 문제가 있습니다. "정의되지 않은 오프셋 : 8"오류가 발생합니다. 그러나 팀의 점수와 이름은 완벽하게 보여줍니다. 여기 내 html 코드Notice : 정의되지 않은 오프셋

<div class="container"> 
      <form method="post" action="../_libs/test.php"> 
      <?php 
      foreach($teams as $arr) 
      { 
       ?> 

        <div class="row team_result"> 

         <div class="col-md-8"> 

          <div class="row"> 
          <div class="col-md-3"> <img class="img img-thumbnail" src="../_images/<?php echo $arr['Team_Logo']; ?>" width="50" height="50"> </div> 

          <div class="col-md-3"> <label> <?php echo $arr['Team_Name']; ?> </label> </div> 

          <div class="col-md-3"> 
           <div class="input-group"> 
            <input type="text" class="form-control" name="points[]" placeholder="points"> 
           </div> 
          <input type="text" name="Name[]" id="" value="<?php echo $arr['Team_Name'] ?>" 
      style="display:none" > 
          </div> 


          </div> 

         </div> 




        </div> 

       <?php 
      } 

      ?> 
      <div class="col-lg-6 col-lg-offset-4"> <input type="submit" class="btn btn-primary" name="submit" value="Post"> </div> 
      </form> 
      </div> 

그리고 PHP 코드

<?php 

//echo json_encode($_POST); 

if(!empty($_POST['Name'])){ 
     $team=$_POST['Name']; 
     $teams=count($team); 
      for($i=0; $i <= $teams; $i++) 
        { 
         echo $team[$i] .",". $_POST['points'][$i]."<br>"; 
        // echo $teams; 
        } 

} 


?> 
+1

어떤 행에 있습니까? –

+0

인쇄하기 전에 isset 함수를 사용하십시오. if (isset ($ _ POST [ 'Name'])) {여기에 코드를 추가하십시오}' – Sundar

답변

0

당신은 당신이 <=를 사용하는 동안, 당신은 $i 동일한 0, 1 (루프 8 개 팀,하지만 9 반복이 단지 <하지 <=

for ($i = 0; $i < $teams; $i++) 

를 사용할 필요가 , 2, 3, 4, 5, 6, 7 및 8). 마지막 하나는 정의되지 않았습니다.

+0

대단히 감사합니다. 그것은 효과가있었습니다. 가장 높은 점수와 팀 이름을 얻으려면 어떻게하십시오? – olakunle

+0

DB에서 직접 만드는 것이 가장 좋습니다. 이 코드 만 가지고 있다면 for-loop 앞에 설정하십시오. var'$ highest_points = 0; for 루프 'if ($ _POST ['points '] [$ i]> $ highest_points) {$ highest_index = $ i; highest_points = $ _POST [ 'points'] [$ i];}'. 전체 루프가 끝나면 highet 점수를 가진 팀의'$ highest_index' 인덱스를 갖게됩니다. echo'$ _POST [ 'Name'] [$ highest_index];'를 사용하여 인쇄 할 수 있습니다. 나는 여기에 인라인으로 썼다. 오타가 없기를 바란다. 도움이 될 것입니다. – panther

+0

마지막 부분을 가져 오지 않았습니다. 하지만 도움을 주셔서 감사합니다. – olakunle

0

귀하의 루프 조건 $i < $teams이 있어야합니다. 배열의 인덱스는 항상 0으로 인덱싱되지만 배열의 수는 항상 1부터 시작합니다. 루프가 배열의 경계를 벗어납니다. 루프에서

<?php 
    //echo json_encode($_POST); 

    if(!empty($_POST['Name'])){ 
     $team=$_POST['Name']; 
     $teams=count($team); 
     for($i=0; $i < $teams; $i++) 
     { 
      echo $team[$i] .",". $_POST['points'][$i]."<br>"; 
      // echo $teams; 
     } 
    } 

?> 
+0

@ Jerodev. 그것은 효과가 있었습니까, 제발 어떻게 최고점을 가진 팀을 얻습니까? – olakunle

관련 문제