2014-01-11 6 views
0

Я создал базовый генератор арматуры, который также генерирует поля ввода для ввода каждой команды. Цель состоит в том, чтобы затем эти оценки обновили таблицу лиг.Проходящий массив из формы

Я почти там, но застрял на одной части. Примечание: код ниже намеренно не обновляет таблицу лиг или не посылает оценки в дальнейшем, так как я просто хотел сначала проверить результат, чтобы убедиться, что он работает.

Я отправляю баллы на странице приборов, и как только я отправлю, у меня есть цикл, который должен проходить через каждую строку (например, Team 1-12, Team 2 -15) и выработать победителя. Теперь вот в чем проблема: моя петля возвращает итоговые результаты в ряд и выдает победителя, затем повторяет (команда 2 победителя) 19 раз (есть 19 рядов светильников.

Что я не могу работать вне зависимости от того, перезаписываются ли мои данные на каждой итерации цикла или, возможно, (и я думаю, что это более вероятно), он учитывает только последнюю строку, поскольку данные не находятся в правильном формате массива, чтобы иметь возможность .. Переберите

Вот код Примечание $ команд является массивом из предыдущего ввода страницы формы (имена типов пользователей команды, и этот следующий код создает список приборов, с коробками, чтобы ввести баллы);

$counter=0; 

foreach ($teams as $team) { 


    foreach ($teams as $opposition) { 

    if ($team != $opposition) { 

    $str = <<<EOF 
    <input type="hidden" name="team1" value="$team[1]"> 
    <input type="hidden" name="team2" value="$opposition[1]"> 
    <tr><td>Row $counter<input type="hidden" value="$counter" name="row1"><td><input   type="hidden" name="team_id" class="invis" value="$team[0]"><td><input type="text"  name="team1_score"> $team[1] 
     <td> versus <td> <input type="hidden" value="$opposition[0]"><td> $opposition[1] <td><input type="text" name="team2_score"><td>Row $counter<input type="hidden" value="$counter" name="row2"></tr> 
    <input type="hidden" name="fixtures" value="$counter"> 

EOF; 

     echo $str; 
     $counter++; 

     } 
     } 
} 

echo "<hr><input type=\"submit\" value=\"Go\">"; 
echo "</form>"; 
echo "</table>"; 

А теперь код, который я имею проблему с, он выводит результаты для последнего ряда раз, а затем выводит ничья/выигрыш/проигрыш ЗАЯВЛЕНИЯ 19 раз (количество светильников) ...

$team1=$_POST['team1']; 
$team2=$_POST['team2']; 
$row1=$_POST['row1']; 
$row2=$_POST['row2']; 
$fixtures=$_POST['fixtures']; 
$team_id=$_POST['team_id']; 
$team1_score=$_POST['team1_score']; 
$team2_score=$_POST['team2_score']; 
$games=$_POST['games']; 


$games=array('TeamOne: ' =>$team1, 'Goals: '=> $team1_score, 'TeamTwo: ' => $team2, 'Goals2:  '=>$team2_score); 
$row=0; 
while ($row<$fixtures) { 
foreach ($games as $key=>$value) { 
echo "$key $value <br>"; 
} 


if ($team1_score > $team2_score) { 
    echo "$team1 are the winners"; 
    $row++; 
} 
else if ($team2_score > $team1_score) { 
    echo "$team2 are the winners"; 
    $row++; 
} 
else { 
echo "Drawed"; 
$row++; 
} 
} 

Таким образом, это выводит команды и оценки для окончательного крепления на странице раньше, затем (в зависимости от оценки) повторяет победителей или выбирает варианты 19 раз.

Любая помощь будет высоко оценена.

Большое спасибо

ответ

0

Вы пишете 19 раз то же имя атрибута в той же форме, так что вы получите только один элемент. Попытайтесь изменить свои входы для массивов, а затем вы получите массив элементов, которые вы можете обычным образом перебирать в PHP.

$counter=0; 

    foreach ($teams as $team) { 


     foreach ($teams as $opposition) { 

     if ($team != $opposition) { 

     $str = <<<EOF 
     <input type="hidden" name="team1[]" value="$team[1]"/> 
     <input type="hidden" name="team2[]" value="$opposition[1]"/> 

     <input type="hidden" name="team1_score[]" /> 
     <input type="hidden" name="team2_score[]" /> 

// etc... 

    EOF; 

      echo $str; 
      $counter++; 

      } 
      } 
    } 

    echo "<hr><input type=\"submit\" value=\"Go\">"; 
    echo "</form>"; 
    echo "</table>"; 
+0

ah so simple - спасибо большое! – DJC

Смежные вопросы