0

我在数组中的复选框有问题。我正在编写一个在soccergames(室内)上运行的脚本,以跟踪射手和其他信息,如卡片(绿色或红色)。

这是客队表的代码。问题出在复选框上。未选中时,它们不会发送任何值。我需要他们在未选中时发送“0”作为值,在选中时发送“30”。

   $sql1="SELECT dbo_doelpunten.TeamRelatieNummer, dbo_doelpunten.aantaldoelpunten, dbo_doelpunten.Deelnemer, dbo_doelpunten.aantalstrafminuten, dbo_Deelnemers.Deelnemer, dbo_Deelnemers.MinutenStrafVerwerkt, dbo_Deelnemers.Doelpunten, dbo_Deelnemers.NaamCombi
    FROM dbo_doelpunten
    LEFT JOIN dbo_Deelnemers
    ON dbo_doelpunten.Deelnemer=dbo_Deelnemers.Deelnemer
    WHERE dbo_doelpunten.TeamRelatieNummer='436'
    ORDER BY dbo_doelpunten.Deelnemer
    ";
    // $sql1="SELECT * FROM dbo_doelpunten WHERE TeamRelatienummer='436'";
    $result1=mysql_query($sql1);

    // Count table rows 
    $count=mysql_num_rows($result1);
    $Deelnemer = array();
    ?>
    <td>
    <table id="table" class="table"  width="400"> 
    <thead> 
    <tr> 
        <th data-sort="int">Nr</th>
        <th data-sort="string">Naam</th>      
        <th data-sort="int">Doelpunten</th> 
        <th data-sort="int">Tijdstraf</th> 
        <th data-sort="int">Rood?</th>
    </tr> 
    </thead>
    <tbody>
    <?php
    while($rowuit=mysql_fetch_array($result1)){
    $e=$rowuit['MinutenStrafVerwerkt'];
    if ($e>='10')
      {
      echo "<tr bgcolor='red'>";
      }
    else
      {
      echo "<tr>";
      }
      ?>
    <td width="50" class="tdata"><input name="Deelnemeruit[]" type="hidden" id="Deelnemeruit" size="10" value="<? echo $rowuit['Deelnemer']; ?>" readonly><? echo $rowuit['Deelnemer']; ?></td>
    <td width="250" class="tdata"><input name="NaamCombiuit[]" type="hidden" id="NaamCombiuit" size="20" value="<? echo $rowuit['NaamCombi']; ?>" readonly><? echo $rowuit['NaamCombi']; ?></td>
    <td width="50" class="tdata"><input name="doelpuntuit[]" type="number" min="0" max="100" size="3" id="doelpuntuit" value="<? echo $rowuit['aantaldoelpunten'] ?>"></td>
    <td width="50" class="tdata"><input name="strafuit[]" type="number" min="0" max="100" size="3" id="strafuit" value="<? echo $rowuit['aantalstrafminuten'] ?>"></td>
    <td width="50" class="tdata"><input name="rooduit[]" type="checkbox" value="30" id="rooduit"></td>
    </tr>
    <?php
    }
    ?>

创建数组效果很好,并且表格创建得很好。更新比分、射手和罚时(绿卡)效果很好,除了红卡是一个复选框。在更新数据库的代码下面

$Deelnemerthuis = $_POST['Deelnemerthuis']; 
$NaamCombithuis = $_POST['NaamCombithuis'];
$doelpuntthuis = $_POST['doelpuntthuis']; 
$strafthuis = $_POST['strafthuis']; 
$vlaggerthuis = $_POST['vlaggerthuis']; 
$teamthuis = $_POST['teamthuis']; 
$roodthuis = $_POST['roodthuis'];

$Deelnemeruit = $_POST['Deelnemeruit']; 
$NaamCombiuit = $_POST['NaamCombiuit'];
$doelpuntuit = $_POST['doelpuntuit']; 
$strafuit = $_POST['strafuit']; 
$vlaggeruit = $_POST['vlaggeruit']; 
$teamuit = $_POST['teamuit']; 
$rooduit = $_POST['roodtuit'];




// Check if button name "Submit" is active, do this 
if(isset($_POST['Submit'])){

$i=0;
while($i<$count){
$sql3= "UPDATE dbo_doelpunten SET aantaldoelpunten = '" . $doelpuntthuis[$i] . "', aantalstrafminuten = '" . $strafthuis[$i] . "' WHERE wedstrijdid='300' AND  Deelnemer = '" . $Deelnemerthuis[$i] . "'"; 
$result3=mysql_query($sql3);


$sql7= "UPDATE dbo_Deelnemers SET MinutenStrafVerwerkt = MinutenStrafVerwerkt+'" . $roodthuis[$i] . "' WHERE Deelnemer = '" . $Deelnemerthuis[$i] . "'";
$result7=mysql_query($sql7);


$sql4= "UPDATE dbo_doelpunten SET aantaldoelpunten = '" . $doelpuntuit[$i] . "', aantalstrafminuten = '" . $strafuit[$i] . "' WHERE wedstrijdid = '300' AND Deelnemer = '" . $Deelnemeruit[$i] . "' "; 
$result4=mysql_query($sql4);

$sql8= "UPDATE dbo_Deelnemers SET MinutenStrafVerwerkt = MinutenStrafVerwerkt+'" . $rooduit[$i] . "' WHERE Deelnemer = '" . $Deelnemeruit[$i] . "'"; 
$result8=mysql_query($sql8);

$i++;
} 

如何让复选框在未选中时为 0,在选中时为 30?

我在这里发布了页面的完整代码:http: //pastebin.com/u6xVMmrr

4

3 回答 3

1

复选框不会发送未经检查的数据,因此您有两种选择:

  1. 测试复选框字段的存在。如果不存在,则假定值为 0。
  2. 有一个具有相同变量名称和值“0”的隐藏表单变量,它将在邮寄时发送。如果复选框(稍后出现在表单中)被选中,它将用 30 覆盖 0 值。
于 2013-01-23T16:48:21.263 回答
0

只需乘以 1 即可获得 POST

$checkbox=$_POST['checkbox']*1;

因此,如果未选中该复选框,您将得到 0。

另一种解决方案是检查 $_POST 是否设置:

if(!isset($_POST['checkbox'])){
$checkbox=0;
}else{
$checkbox=$_POST['checkbox'];
}
于 2013-01-23T16:50:32.530 回答
0

我通过将复选框更改为下拉选择来修复它。不是最佳但可行。感谢各位的帮助!

于 2013-01-24T18:18:52.690 回答