Bouton radio et session

Résolu/Fermé
falcor Messages postés 61 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 26 mai 2009 - 30 juil. 2007 à 17:13
 Alain42 - 1 août 2007 à 13:46
Bonjour tout le monde,

J'utilise les sessions pour concerver les donées d'un formulaire après traitement. Mon problème et pour conserver les chekbox et boutons radio qui ont été cochées.

jusque là pas de problèmes

<input name="nom" type="text" id="nom" size="30" value="<?php echo $_SESSION['nom']; ?>" />

Mais là je bloque

<input type="radio" name="civ" value="Mr " />
<input type="radio" name="civ" value="Mme" />
<input type="radio" name="civ" value="Mlle" />

J'éspère que je suis asser clair...

Merci d'avance

9 réponses

falcor Messages postés 61 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 26 mai 2009 2
30 juil. 2007 à 18:38
Merci du coup de pouce mais, cela ne fonctionne pas.

<input type="radio" name="civ" value="Mlle" <?php if ($_POST['civ']=="Mlle") {echo "checked";} ?> />

et sur fichier de traitement:

<?php
session_start();
$_SESSION["nom"] = $_POST["nom"];
$_SESSION["prenom"] = $_POST["prenom"];
$_SESSION["adresse"] = $_POST["adresse"];
$_SESSION["npa"] = $_POST["npa"];
$_SESSION["localite"] = $_POST["localite"];
$_SESSION["mail"] = $_POST["mail"];
$_SESSION["tel"] = $_POST["tel"];
$_SESSION["civ"] = $_POST["civ"];
?>
3
Essayes:

<input type="radio" name="civ" value="Mr " <?php if ($_POST['civ']=="Mr") {echo "checked";}  ?>/>
<input type="radio" name="civ" value="Mme" <?php if ($_POST['civ']=="Mme") {echo "checked";}  ?>/>
<input type="radio" name="civ" value="Mlle" <?php if ($_POST['civ']=="Mlle") {echo "checked";}  ?>/> 


si tu utilises la method="post" bien sur pour ton formulaire
1
si c'est le fichier de traitement qui "recharge" le formulaire, la variable $_POST('civ'] devrait contenir "Mlle", fais un echo pour voir

j'ai utilisé cette méthode plusieurs fois et ça marchait.
0
falcor Messages postés 61 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 26 mai 2009 2
31 juil. 2007 à 16:57
Pour préciser :

$_SESSION["civ"] = $_POST["civ"];

et devenue:

$_SESSION["abonement"] = $_POST["abonement"]; ( abonement et une suite de cases à cocher avec chacunes une valeurs differente)

Le problème c'est que je ne renvoie aucune valeure sur mon formulaire si je fais un echo $_SESSION[abonement] j'ai un Array. Pour tous les autres champs aucuns problémes. Sur mon fichier de traitement aucuns soucis les valeurs de mes cases sont envoyées, mais pas en retournant sur le formulaire en cas d'erreur sur un champ.


mon traitement:

<?php
session_start();
$_SESSION["nom"] = $_POST["nom"];
$_SESSION["prenom"] = $_POST["prenom"];
$_SESSION["adresse"] = $_POST["adresse"];
$_SESSION["npa"] = $_POST["npa"];
$_SESSION["ville"] = $_POST["ville"];
$_SESSION["mail"] = $_POST["mail"];
$_SESSION["tel"] = $_POST["tel"];
$_SESSION["remarque"] = $_POST["remarque"];
$_SESSION["abonement"] = $_POST["abonement"];
?>
..........................................................................
<?php
$abonement = ($_POST['abonement']);
$nom = htmlentities($_POST['nom']);
$prenom = htmlentities($_POST['prenom']);
$adresse = htmlentities($_POST['adresse']);
$npa = htmlentities($_POST['npa']);
$ville = htmlentities($_POST['ville']);
$mail = htmlentities($_POST['mail']);
$tel = htmlentities($_POST['tel']);
$remarque = htmlentities($_POST['remarque']);
?>
<?
if($abonement)
{
print "Le type d'abonnement que vous avez choisis :<br> ";
for ($i = 0; $i < count($abonement); $i++)
{
echo $abonement[$i]." <br> ";
}
print "<br />\n";
}
else
{
print "Vous n'avez pas choisis votre abonnement<br />\n";
}
?>


<?php if(empty($_POST['nom']))
{
echo"vous devez spécifier votre nom <br>";
}
if(empty($_POST['prenom']))
{
echo"vous devez spécifier votre prénom <br>";
}
if(empty($_POST['adresse']))
{
echo"vous devez spécifier votre adresse <br>";
}
if(empty($_POST['npa']))
{
echo"vous devez spécifier votre numéro postale <br>";
}
if(empty($_POST['ville']))
{
echo"vous devez spécifier votre ville <br>";
}
if(empty($_POST['mail']))
{
echo"vous devez spécifier votre E-Mail <br>";
}
if(empty($_POST['tel']))
{
echo"vous devez spécifier votre numéro de téléphone <br>";
}
?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ca me revient, les case à cocher sont transmises sous forme d'array.

Inspires toi de ce code:

orsque vous souhaitez intégrer des cases à cocher (checkbox) dans un formulaire :
ces cases représentent plusieurs choix possibles pour une même proposition, il est donc normal qu'elles aient le même nom.

Seulement, vous récupérerez à ce moment-là une et une seule variable, ce qui ne vous permettra pas de récupérer toutes les valeurs sélectionnées.

La solution consiste à récupérer un tableau de valeurs. Ceci tout simplement en ajoutant des crochets au nom de la case à cocher.

exemple de formulaire :
Code:

<form name="formulaire1" method="POST" action="script.php">
Pour vos sites vous utilisez :<br>
<input type="checkbox" name="langage[]" value="js"> le Javascript <br>
<input type="checkbox" name="langage[]" value="php"> le PHP <br>
<input type="checkbox" name="langage[]" value="sql"> le SQL <br>
<input type="checkbox" name="langage[]" value="html"> le HTML <br>
<input type="submit" name="submit" value="Envoyer">
</form>


les crochets vides vont ici créer une variable nommée "langage", sous forme de tableau indexé automatiquement et rempli avec les valeurs sélectionnées :

Nous pouvons ensuite boucler sur ce tableau et récupérer ces valeurs dans script.php :
PHP:
<?php
// vérifions que la variable a été transmise
$tabLangages = (isset($_POST['langage']))?$_POST['langage']:null;

echo "Voici les langages que vous avez choisi :<br>";
// bouclons sur le tableau qui a été transmis et affichons les valeurs sélectionnées
if (!empty($tabLangages)) {
foreach($tabLangages as $cle => $valeur) {
echo $cle.' : '.$valeur.'<br>';
}
}
?>
0
falcor Messages postés 61 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 26 mai 2009 2
31 juil. 2007 à 21:47
Je vous remercie encore pour votre patience. lol

En faite c'est plus au moin ce que j'avais fait:

<input name="abonement[]" type="checkbox" value="Offre de base" <?php if ($_POST['abonement']=="Offre de base") {echo "checked";} ?>/>

Dans un sens j'ai pas de problèmes, j'arrive à afficher le resultat des cases cochées sur ma page de traitement, mais je n'arrive pas à renvoyer les valeurs sur mon formulaire ( via mes session) .

Je dois louper quelque chose ici:
(page de traitement)

$_SESSION["abonement"] = $_POST["abonement"];
0
As tu essayé :

<?php
$array_language=$_POST['language'];

?>

<form name="formulaire1" method="POST" action="script.php">
Pour vos sites vous utilisez :<br>
<input type="checkbox" name="langage[]" value="js" <?php if($array_language[0]=="js") {echo "checked";} ?>> le Javascript <br>
<input type="checkbox" name="langage[]" value="php" <?php if($array_language[1]=="php") {echo "checked";} ?>> le PHP <br>
<input type="checkbox" name="langage[]" value="sql" <?php if($array_language[2]=="sql") {echo "checked";} ?>> le SQL <br>
<input type="checkbox" name="langage[]" value="html" <?php if($array_language[3]=="html") {echo "checked";} ?>> le HTML <br>
<input type="submit" name="submit" value="Envoyer">
</form> 
0
falcor Messages postés 61 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 26 mai 2009 2
1 août 2007 à 11:17
Yepa, la classe! ça marche au poil.

En tous cas merci, en plus d'avoir pu résoudre mon problème, j'aurais appris pleins de choses.
0
Cela me fait plaisir d'avoir pu t'aider, c'est ça la communauté CCM.

Pour apprendre il faut galérer. et ne pas hesiter à faire des petits scripts d'essai avec des echo pour voir ce qui se passe;

Au passage, je ne sais pas si tu connais, mais print_r($un_array); t'affiche tout le contenu d'un array avec les clés.

sinon un site pas mal pour apprendre siteduzero.com
0