pb de recup champ avec une checkbox

philoult
Invité n'ayant pas de compte PHPfrance

25 mars 2005, 15:52

Bonjour, j'ai un champ avec une checkbox et je voudrais que cela renvoi une donnée dans le cas ou la checkbox n'est pas coché? comment faire?

Merci

voici mon bout de code:
pour ma checbox: <input type="checkbox" name="boxosm" value="oui">

et pour la recup de valeur dans ma base sql:
$boxosm = $_POST["boxosm"] ;
donc j'ai juste mis la recup de variable dans le cas ou la case est cochée.
comment faire donc quand la case est vide pour avoir aussi une variable d'envoyé?

Merci

Mammouth du PHP | 19672 Messages

25 mars 2005, 15:55

Si la case n'est pas cochée, on ne la trouvera pas dans la super-globale $_POST.
Donc, teste son existence:
<?php
if(isset($_POST['boxosm']) && $_POST['boxosm'] == "oui")
{
    /* La valeur existe, la case a été cochée: traitement pour "oui" */
}
else
{
    /* La valeur n'existe pas, case non cochée: traitement pour "non" */
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

25 mars 2005, 16:29

merci pour l'info, je dois donc mettre:

<?php
if(isset($_POST['boxosm']) && $_POST['boxosm'] == "oui")
{
/* La valeur existe, la case a été cochée: traitement pour "oui" */
echo $boxosm = oui
}
else
{
/* La valeur n'existe pas, case non cochée: traitement pour "non" */
echo $boxosm = non
}
?>

et je rerouve mon oui ou mon non dans ma base sql
ou alors je doit mettre:

<?php
if(isset($_POST['boxosm']) && $_POST['boxosm'] == "oui")
{
/* La valeur existe, la case a été cochée: traitement pour "oui" */
$sql_osm = "INSERT INTO osm (boxosm) VALUES (oui)" ;
}
else
{
/* La valeur n'existe pas, case non cochée: traitement pour "non" */
$sql_osm = "INSERT INTO osm (boxosm) VALUES (non)" ;
}

/* avec ma requete en ajout de celle que j'ai deja pour d'autre champ du formulaire */
$requete = mysql_query($sql,$sql_osm,$cnx) or die( mysql_error() ) ;
?>

:?

Mammouth du PHP | 19672 Messages

25 mars 2005, 16:40

Quelque chose dans ce goût là, oui.
Attention à la syntaxe quand même :
- N'oublie pas les ";" en fin de ligne d'instruction.
- Encadre les chaines de caractères dans le code PHP avec des " " ou des ' ' à la rigueur.
<?php
if(isset($_POST['boxosm']) && $_POST['boxosm'] == "oui")
{
/* La valeur existe, la case a été cochée: traitement pour "oui" */
    $boxosm = "oui";
    echo($boxosm);
}
else
{
/* La valeur n'existe pas, case non cochée: traitement pour "non" */
    $boxosm = "non";
    echo($boxosm);
}
?>
Pour la suite, l'idée est là, il te reste à faire fonctionner tout ça.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

25 mars 2005, 16:46

merci pour aide, je vais teste ça.