duanjian7617 2010-04-16 09:12
浏览 71
已采纳

PHP表单复选框问题

I have a form that takes the following inputs:
Name: IBM
Surface(in m^2): 9
Floor: (Checkbox1)
Phone: (Checkbox2)
Network: (Checkbox3)
Button to send to a next php page.

All those values above are represented in a table when i press the submit button.
The first two (name and surname) are properly displayed in the table.
The problem is with the checkboxes. If i select the first checkbox the value in the table should be presented with 1. If its not selected the value in the table should be empty.

 echo "<td>$Name</td>"; // works properly
 echo "<td>$Surface</td>"; // works properly
 echo "<td>....no idea for the checkboxes</td>;

Some part of my php code with the variables:

<?php
if (!empty($_POST))
{
$name= $_POST["name"];
$surface= $_POST["surface"];
$floor= $_POST["floor"]; 
$phone= $_POST["telefoon"]; 
$network= $_POST["netwerk"]; 


if (is_numeric($surface)) 
{
    $_SESSION["name"]=$name;
    $_SESSION["surface"]=$surface;
    header("Location:ExpoOverzicht.php"); 
}
else 
{
    echo "<h1>Wrong input, Pleasee fill in again</h1>";
}  

if(!empty($floor) && ($phone) && ($network))
{
    $_SESSION["floor"]=$floor;
    $_SESSION["phone"]=$phone;
    $_SESSION["network"]=$network;
    header("Location:ExpoOverzicht.php"); 
}    
}

?>

Second page with table:

<?php

$name= $_SESSION["name"];
$surface= $_SESSION["surface"];
$floor= $_SESSION["floor"];
$phone= $_SESSION["phone"];
$network= $_SESSION["network"];

echo "<table class=\"tableExpo\">";

echo "<th>name</th>";
echo "<th>surface</th>";
echo "<th>floor</th>";
echo "<th>phone</th>";
echo "<th>network</th>";
echo "<th>total price</th>";

for($i=0; $i <= $_SESSION["name"]; $i++)
{
    echo "<tr>";

        echo "<td>$name</td>"; // gives right output
        echo "<td>$surface</td>"; // gives right output
        echo "<td>...</td>"; //wrong output (ment for checkbox 1)
        echo "<td>...</td>"; //wrong output (ment for checkbox 2)
        echo "<td>...</td>"; //wrong output (ment for checkbox 3)
        echo "<td>....</td>";

    echo "</tr>;";
}
echo "</table>";



<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" id="form1">
<h1>Vul de gegevens in</h1>
<table>
    <tr>
        <td>Name:</td>
        <td><input type="text" name="name" size="18"/></td>
    </tr>
    <tr>
        <td>Surface(in m^2):</td>
        <td><input type="text" name="surface" size="6"/></td>
    </tr>
    <tr>
        <td>Floor:</td>
        <td><input type="checkbox" name="floor" value="floor"/></td>
    </tr>
    <tr>
        <td>Phone:</td>
        <td><input type="checkbox" name="phone" value="phone"/></td>
    </tr>
    <tr>
        <td>Network:</td>
        <td><input type="checkbox" name="network" value="network"/></td>
    </tr>
    <tr>
        <td><input type="submit" name="verzenden" value="Verzenden"/></td>
    </tr>
</table>

There might be a few spelling mistakes since i had to translate it. Best regards.

  • 写回答

3条回答 默认 最新

  • donlih2986 2010-04-16 09:22
    关注

    Instead of directly assigning your checkbox variables, see if they have been checked or not first.

    $verdieping = isset($_POST["floor"]) ? $_POST["floor"] : 0; 
    $telefoon = isset($_POST["telefoon"]) ? $_POST["telefoon"] : 0; 
    $netwerk = isset($_POST["netwerk"]) ? $_POST["netwerk"] : 0; 
    

    This way, if the user hasn't ticked a checkbox, you have a value of '0' assigned to it instead of an undefined variable.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c