我遇到了数组中复选框的问题。我正在制作一个在足球游戏(室内)上运行的脚本,以跟踪进球者和其他信息,比如牌(绿色或红色)。
这是客队表的代码。问题出在复选框上。未选中时,它们不会发送任何值。我需要他们在未选中时发送'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
答案 0 :(得分:1)
复选框不会发送未经检查的数据,因此您有两种选择:
答案 1 :(得分:0)
只需乘以1即可获得POST
$checkbox=$_POST['checkbox']*1;
如果未选中复选框,您将获得0。
另一个解决方案是检查是否设置了$ _POST:
if(!isset($_POST['checkbox'])){
$checkbox=0;
}else{
$checkbox=$_POST['checkbox'];
}
答案 2 :(得分:0)
我通过将复选框更改为下拉选项来修复它。不是最佳但可行的。 Thanx为帮助人员!