我有一个表格,其中包含以下输入:
姓名:IBM
表面(m ^ 2):9
楼层:( Checkbox1)
电话:( Checkbox2)
网络:( Checkbox3)
按钮发送到下一个php页面。
当我按下提交按钮时,上面的所有值都会在表格中显示 前两个(姓名和姓氏)正确显示在表格中 问题在于复选框。如果我选择第一个复选框,表中的值应显示为1.如果未选中,则表中的值应为空。
echo "<td>$Name</td>"; // works properly
echo "<td>$Surface</td>"; // works properly
echo "<td>....no idea for the checkboxes</td>;
我的PHP代码的一部分包含变量:
<?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");
}
}
?>
带表格的第二页:
<?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>
由于我不得不翻译,可能会有一些拼写错误。 最好的祝福。
答案 0 :(得分:2)
不是直接指定您的复选框变量,而是先查看它们是否已被选中。
$verdieping = isset($_POST["floor"]) ? $_POST["floor"] : 0;
$telefoon = isset($_POST["telefoon"]) ? $_POST["telefoon"] : 0;
$netwerk = isset($_POST["netwerk"]) ? $_POST["netwerk"] : 0;
这样,如果用户没有勾选复选框,则为其分配值“0”而不是未定义的变量。
答案 1 :(得分:1)
如果您声明一个复选框:
<input type="checkbox" name="mycheckbox" value="1">
您可以在提交表单后检查值:
if(!empty($_POST["mycheckbox"])) {
// checkbox was checked
}
else {
// checkbox was not checked
}
答案 2 :(得分:1)
在这个php页面中你可以像这样写,它可能是你问题的解决方案
if (!empty($_POST))
{
$standnaam = $_POST["name"];
$oppervlakte = $_POST["surface"];
$verdieping = $_POST["floor"];
$telefoon = $_POST["telefoon"];
$netwerk = $_POST["netwerk"];
if (is_numeric($oppervlakte))
{
$_SESSION["name"]=$standnaam;
$_SESSION["surface"]=$oppervlakte;
header("Location:ExpoOverzicht.php");
}
else
{
echo "<h1>Wrong input, Pleasee fill in again</h1>";
}
if(!empty($verdieping) && ($telefoon) && ($netwerk))
{
$_SESSION["floor"]=$verdieping;
$_SESSION["phone"]=$telefoon;
$_SESSION["network"]=$netwerk;
header("Location:ExpoOverzicht.php");
}
}