2010-04-16 70 views
1

我有一个表格,它采用以下输入:
名称:IBM
表面(平方公尺):9
楼层:(Checkbox1)
电话:(Checkbox2)
网络:(复选框3)
按钮发送到下一个PHP页面。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

的解决方案,你的HTML代码看起来像??? – lfx 2010-04-16 09:15:35

+0

添加了表单html代码。一切都在2个PHP文件。 – Sef 2010-04-16 09:21:43

回答

2

而不是直接分配的复选框变量,看他们是否已检查或不先。

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

这样,如果用户没有选中一个复选框,你必须分配给它,而不是一个未定义的变量的“0”的数值。

+0

谢谢,这正是我正在寻找。 – Sef 2010-04-16 09:30:49

1

如果要声明一个复选框有:

<input type="checkbox" name="mycheckbox" value="1"> 

您可以通过提交表单后检查值:

if(!empty($_POST["mycheckbox"])) { 
    // checkbox was checked 
} 
else { 
    // checkbox was not checked 
} 
+0

你好,在我的第一个php文件中有。但是,究竟我放在我的表td元素来调用该值? – Sef 2010-04-16 09:23:52

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"); 
}  
}