2010-04-16 5 views
1

je une forme qui prend les entrées suivantes:
Nom: IBM
Surface (en m 2): 9
étage: (checkBox1)
Téléphone: (Checkbox2)
réseau : (Case à cocher 3)
Bouton à envoyer à une page php suivante.Formulaire PHP case question

Toutes ces valeurs ci-dessus sont représentées dans un tableau lorsque j'appuie sur le bouton Soumettre.
Les deux premiers (nom et prénom) sont correctement affichés dans le tableau.
Le problème est avec les cases à cocher. Si je coche la première case, la valeur de la table doit être présentée avec 1. Si elle n'est pas sélectionnée, la valeur de la table doit être vide.

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

Une partie de mon code php avec les 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"); 
}  
} 

?> 

Deuxième page avec 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> 

Il pourrait y avoir quelques fautes d'orthographe que je devais traduire. Cordialement.

+0

Et votre code HTML ressemble ??? – lfx

+0

a ajouté le code html du formulaire. Tout est dans 2 fichiers php. – Sef

Répondre

2

Au lieu d'affecter directement vos variables de cases à cocher, voir si elles ont été vérifiées ou pas d'abord.

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

De cette façon, si l'utilisateur n'a pas coché une case à cocher, vous avez une valeur de « 0 » qui lui est attribué au lieu d'une variable non définie.

+0

Merci c'était exactement ce que je cherchais. – Sef

1

Si vous déclarez une case à cocher avec:

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

vous pouvez vérifier la valeur après la soumission du formulaire par:

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

Bonjour, je l'ai dans mon premier fichier php. Mais qu'est-ce que je mets exactement dans mon élément de table td pour faire appel à cette valeur? – Sef

1

Dans cette page php vous pouvez écrire comme ça, il peut être une solution de votre question

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