2014-08-27 64 views
0

因此,我們走吧。我有一個頁面列出了一堆未分類的體育遊戲。這是我運行生成頁面的查詢。提交多個動態創建的表格,但不是全部

<div id="NFL"> 
    <?php 
    foreach ($conn->query("SELECT * FROM game_data WHERE sport='NFL' AND awayscore IS NULL ORDER BY date DESC") as $NFL) { 
    echo '<form method="post" action="update_score.php"> 
     <table class="table table-bordered"> 
      '; 
      echo ' 
      <thead> 
       <tr> 
        <th width="5%" class="head0">Rotation</th> 
        <th width="45%" class="head1">Team</th> 
        <th width="10%" class="head0">Money Line</th> 
        <th width="10%" class="head1">Spread</th> 
        <th width="10%" class="head0">Over/Under</th> 
        <th width="10%" class="head1">Score</th> 
       </tr> 
      </thead>'; 
      echo ' 
      <tr> 
       <td colspan="6"> 
        '; 
        $date = date_create($NFL['date']); 
        echo date_format($date, 'l F jS Y \@ g:iA'); 
        echo ' 
       </td> 
      </tr>'; 
      echo ' 
      <tr> 
       <td>'.$NFL['awayrotation'].'</td> 
       <td>'.$NFL['awayteam'].'</td> 
       <td>'.$NFL['awaymoneyline'].'</td>'; 
       echo ' 
       <td> 
        '; 
        if ($NFL['awaymoneyline'] > 0) { 
        $line = $NFL['line'] * -1; 
        echo $line; 
        } 
        elseif ($NFL['awaymoneyline'] < 0) { 
        echo $NFL['line']; 
        }      ; 
        echo ' 
       </td>'; 
       echo ' 
       <td>'.$NFL['total'].'</td> 
       <td><input type="text" required name="awayscore"></input></td> 
      </tr>'; 
      echo ' 
      <tr> 
       <td>'.$NFL['homerotation'].'</td> 
       <td>'.$NFL['hometeam'].'</td> 
       <td>'.$NFL['homemoneyline'].'</td>'; 
       echo ' 
       <td> 
        '; 
        if ($NFL['homemoneyline'] > 0) { 
        $line = $NFL['line'] * -1; 
        echo $line; 
        } 
        elseif ($NFL['homemoneyline'] < 0) { 
        echo $NFL['line']; 
        }      ; 
        echo ' 
       </td>'; 
       echo ' 
       <td>'.$NFL['total'].'</td> 
       <td><input type="text" required name="homescore"></input></td> 
      </tr>'; 
      echo ' 
      <tr><td colspan="6" align="right"><input type="hidden" name="id" value="'.$NFL['id'].'"><span style="padding-right:15px"><input type="submit" value="Submit Score"></span></td></tr> 
     </table> 
    </form>'; 
    } 
    ?> 
</div> 

這是我期待做的,我想有一個按鈕來提交多個表單。只有他們在分數中放置了一個值。這可能嗎?我已經閱讀了基於名稱的多個表單,但這些表單正在動態創建。我期待着你的洞察力。

+0

這是不可能的,同時提交多個表單與傳統形成職位到同一個目標。 – epascarello 2014-08-27 16:38:52

+0

你必須使用javascript/ajax來做到這一點。但是你的表單看起來非常短/簡單,你不能將所有東西都放在一個表單中,並且使用數組作爲字段名稱,比如'name =「awayscore [<?php echo $ NFL ['id'];?>]'',等等。?然後你可以簡單地遍歷後端的結果。 – jeroen 2014-08-27 16:40:53

+0

如果你想發佈多個表單,它只能是AJAX。所以你可以有一個按鈕,然後使用JavaScript來發布所有的形式與AJAX。 – 2014-08-27 16:54:18

回答

-1

這裏試試這個

我把一個計數器增加一每次處理這也將是一個關鍵的SQL結果,我們將在以後使用

計數器現在被添加到名稱字段的結束輸入(在前面的「 - 」稍後展開)

在腳本的底部是一個小的代碼,我將如何處理後端信息

<?php 
     $count = "0"; 
     echo '<form method="post" action="update_score.php"><table class="table table-bordered">'; 
     foreach ($conn->query("SELECT * FROM game_data WHERE sport='NFL' AND awayscore IS NULL ORDER BY date DESC") as $NFL) { 
      $count = $count+1; 
      echo '<thead> 
        <tr> 
         <th width="5%" class="head0">Rotation</th> 
         <th width="45%" class="head1">Team</th> 
         <th width="10%" class="head0">Money Line</th> 
         <th width="10%" class="head1">Spread</th> 
         <th width="10%" class="head0">Over/Under</th> 
       <th width="10%" class="head1">Score</th> 
        </tr></thead>'; 
      echo '<tr><td colspan="6">'; 
      $date = date_create($NFL['date']); 
      echo date_format($date, 'l F jS Y \@ g:iA'); 
      echo '</td></tr>';  
      echo '<tr><td>'.$NFL['awayrotation'].'</td><td>'.$NFL['awayteam'].'</td><td>'.$NFL['awaymoneyline'].'</td>'; 
      echo '<td>'; 
      if ($NFL['awaymoneyline'] > 0) { 
       $line = $NFL['line'] * -1; 
       echo $line; 
      } 
      elseif ($NFL['awaymoneyline'] < 0) { 
       echo $NFL['line']; 
      }      ; 
      echo '</td>'; 
      echo '<td>'.$NFL['total'].'</td><td><input type="text" required name="awayscore-$count"></input></td></tr>'; 
      echo '<tr><td>'.$NFL['homerotation'].'</td><td>'.$NFL['hometeam'].'</td><td>'.$NFL['homemoneyline'].'</td>'; 
      echo '<td>'; 
      if ($NFL['homemoneyline'] > 0) { 
       $line = $NFL['line'] * -1; 
       echo $line; 
      } 
      elseif ($NFL['homemoneyline'] < 0) { 
       echo $NFL['line']; 
      }      ; 
      echo '</td>'; 
      echo '<td>'.$NFL['total'].'</td><td><input type="text" required name="homescore-$count"></input></td></tr>'; 
      echo '<tr><td colspan="6" align="right"><input type="hidden" name="id-$count" value="'.$NFL['id'].'"><span style="padding-right:15px">'; 
     } 
     echo '<input type="hidden" name="count" value="$count">' 
     echo '<input type="submit" value="Submit Score"></span></td></tr></table></form>' 



     // back end 

     $counter = 0; 

     while ($counter++ < $_POST['count']) 
     { 
      $name = $_POST["name-$counter"]; 
      $awayscore = $_POST["awayscore-$counter"]; 
      $homescore = $_POST["homescore-$counter"]; 
      $id = $_POST["id-$counter"]; // considering you may need to get rid of the count 

      $name = explode("-", $name); 
      $name = $name[0]; 

      // ect ect 

      // enter in to data base 

      //clear all data in strings 

     } 
    ?> 

對不起,這是由於仇恨:|

更重要的一點是後端代碼是你的傳球手(形式指着代碼)

注意:你的PHP風格是比現在大多數使用舊的,接近我使用 - 只需檢查你使用的所有教程給你參考PHP 5.3,當有疑問轉到php.net並檢查函數調用的版本使用 - 語法和備用選項

+0

-1因爲沒有打算解釋你在OP的原始代碼牆中改變了什麼。 – 2014-08-27 16:55:09

+0

我明白你在做什麼計數。我在這裏學習,這個委員會幫助我學到了很多東西。對於任何可能會問這個問題的人來說,負面都不是很有幫助。現在你的後端代碼,你把它放入update_score.php頁面或不是?我可以閱讀你做的事情,但是看看它做了什麼,我可以看看我是否會得到我需要的結果。如果分數字段沒有更新,這也表示不希望表單發佈。 – DexDeadly 2014-08-27 17:29:02

+0

注意:我更新了答案以覆蓋您的額外問題 – user3750649 2014-08-27 18:39:50