2014-08-27 70 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