Page 1 sur 2
Formulaire qui envoie plus rien...
Posté : 09 mars 2012, 21:24
par ikarytos
Bonsoir,
J’ai un formulaire qui envoie les données dans une bdd avec un bouton submit (envoyé). Cela marchait très bien. En suite j’ai fait une prewiew qui s'affiche sur la même page, appelé aussi avec un bouton submit (aperçu) qui affiche également le bouton (envoyé). Tout fonctionne bien sauf que plus rien n’est envoyé dans la base.
Je pense que le problème viens que quand on clique sur aperçu, la page se recharge pour afficher l’aperçu, mais du coup les champs devienne vide, et le bouton dois envoyer ce qu’il y a dans les champs.
Si j’ai raison, il y a-t-il une solution pour que quand la page se recharge, les données restent inscrites, de façon à les envoyer ou à modifier si besoin.
Et si je me trompe pourrait ’on m’expliquer pourquoi et comment faire ?
Merci d’avance pour votre aide.
Re: Formulaire qui envoie plus rien...
Posté : 09 mars 2012, 21:36
par xTG
Réaffiches dans les champs les valeurs reçues.

Exemple :
<form action="#" method="POST">
<input type="text" name="test" value="<?php if(isSet($_POST['test'])) echo $_POST['test']; ?>" />
<input type="submit" />
</form>
De cette façon tu peux poster le formulaire à l'infini tu ne perdras pas la valeur.
Re: Formulaire qui envoie plus rien...
Posté : 09 mars 2012, 21:45
par ikarytos
Super marche

merci xTG
Par contre pour les bouton radio c'est faisable? surtout que ça se présente comme ce ci :
$tableau .= "<br><input type='radio' name='radiobutton' value=\"".$reponse['nom']."\"></td>";
Re: Formulaire qui envoie plus rien...
Posté : 09 mars 2012, 22:44
par xTG
Il faut faire des conditions pour rajouter l'attribut checked.
<input type="radio" name="monRadio" value="1" <?php if(isSet($_POST['monRadio']) && $_POST['monRadio'] == 1) echo 'checked="checked"'; ?>/>
Re: Formulaire qui envoie plus rien...
Posté : 09 mars 2012, 23:28
par ikarytos
Mais avec cette exemple c'est aussi possible? car je n'y arrive pas...
<?PHP
$calcul = "2";
$requete2 = "SELECT * FROM client";
$resultat2 = mysql_query($requete2);
$tableau2 = "<table border='0' align='center' width='100%'><tr><td width='5%' align='center'><input type='radio' name='radiobutton2' value=\"aucune\" checked></td><td width='45%'>aucune liste</a></td>";
while($reponse2 = mysql_fetch_array($resultat2)){
$tableau2 .= "<td width='5%' align='center'><input type='radio' name='radiobutton2' value=\"".$reponse2['nom']."\" ></td><td width='45%'><a href=\"liste/".$reponse2['nom']."\">".$reponse2['titre']."</a></td>";
$division = $calcul/2;
if ( is_int($division) ) {
$tableau2 .= "</tr><tr>";
}
$calcul = $calcul+1;
}
$tableau2 .= "</tr></table><p> </p><p> </p>";
echo($tableau2);
?>
Re: Formulaire qui envoie plus rien...
Posté : 10 mars 2012, 10:19
par xTG
C'est le même principe sauf que le value n'est pas une valeur fixe mais une variable.
Re: Formulaire qui envoie plus rien...
Posté : 11 mars 2012, 00:08
par ikarytos
Vraiment merci pour ta patience, mais malheureusement je n'y arrive vraiment pas

j'ai cherché presque toute l'après-midi mais je reçois que des erreurs.
$tableau2 .= "<td width='5%' align='center'><input type='radio' name='radiobutton2' value=\"".$reponse2['nom']."\" if(isSet($_POST['radiobutton2']) && $_POST['radiobutton2'] == 1) echo 'checked="checked"'>
Re: Formulaire qui envoie plus rien...
Posté : 11 mars 2012, 01:18
par Ryle
Petit problème de syntaxe... tu ne peux pas coller un if php en plein milieu d'une chaine php (ou alors faut utiliser l'opérateur ternaire)
// option 1
if (isSet($_POST['radiobutton2']) && $_POST['radiobutton2'] == 1)
$tableau2 .= '<input type="radio" name="radiobutton2" value="' . $reponse2['nom'] . '" checked="checked" />';
else
$tableau2 .= '<input type="radio" name="radiobutton2" value="' . $reponse2['nom'] . '" />';
// option 2 avec l'opérateur ternaire: (condition) ? si vrai : si faux;
$tableau2 .= '<input type="radio" name="radiobutton2" value="' . $reponse2['nom'] . '" ' . ((isSet($_POST['radiobutton2']) && $_POST['radiobutton2'] == 1) ? 'checked="checked"' : '') . '>';
Re: Formulaire qui envoie plus rien...
Posté : 11 mars 2012, 13:22
par ikarytos
Bonjour Ryle,
Merci de ton aide, j'ai testé les deux options, il y a effectivement plus d'erreur de syntaxe mais le il ne se passe rien de plus, au moment de prévisualiser la page se recharge, les input text se recharge mais les bouton radio reste tous blanc...
Re: Formulaire qui envoie plus rien...
Posté : 11 mars 2012, 14:07
par Ryle
C'est le test qui n'est pas bon... si la valeur du bouton radio est $reponse2['nom'] alors il faut que le contrôle vérifie cette valeur et non pas 1 pour ajouter l'attribut
if (isSet($_POST['radiobutton2']) && $_POST['radiobutton2'] == $reponse2['nom'])
$tableau2 .= '<input type="radio" name="radiobutton2" value="' . $reponse2['nom'] . '" checked="checked" />';
else
$tableau2 .= '<input type="radio" name="radiobutton2" value="' . $reponse2['nom'] . '" />';
[Résolu] Re: Formulaire qui envoie plus rien...
Posté : 11 mars 2012, 14:16
par ikarytos
Cool ca marche

(même si c'est une évidence pour vous

)
Un grand merci pour votre aide.
Re: Formulaire qui envoie plus rien...
Posté : 13 mars 2012, 17:44
par ikarytos
Excusez moi, juste encore une petite variante..
Pour une liste select, es la même chose? il faut le mettre a chaque valut?? car j'ai tenter le coup mais je reçois que des error...
<?php
$mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
$a = date("d");
$b = $mois[date("n")];
$c = date("Y");
?>
<div class="formMenu">Envoyé le :</div></td></tr><tr><td><div class="formMenu">
<select name="jour" class="boiteFormulaire">
<option value="<?php echo($a);?>"><?php echo($a);?></option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
etc...
</select>
<select name="mois" class="boiteFormulaire">
<option value="<?php echo($b);?>"><?php echo($b);?></option>
<option value="01">janvier</option>
<option value="02">février</option>
<option value="03">mars</option>
etc...
</select>
<select name="annee" class="boiteFormulaire">
<option value="<?php echo($c);?>"><?php echo($c);?></option>
<option value="2012">2012</option>
<option value="2013">2013 </option>
<option value="2013">2014</option>
</select>
Re: Formulaire qui envoie plus rien...
Posté : 13 mars 2012, 17:46
par xTG
Pour un select il faut utiliser l'attribut selected="selected" sur la balise option.
Re: Formulaire qui envoie plus rien...
Posté : 13 mars 2012, 19:13
par ikarytos
Merci, ça marche pour les polices, mais pas pour les couleurs, ça me fais des erreurs de syntaxes,
Parse error: syntax error, unexpected T_STRING in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\ecarte\index.php5 on line 196
<SELECT NAME="fontcolor" class="boiteFormulaire">
<OPTION VALUE="000000" SELECTED="selected">Noir</OPTION>
<OPTION VALUE="FF0000" <?php if(isSet($_POST['fontcolor']) && $_POST['fontcolor'] == FF0000) echo 'SELECTED="selected"'; ?>>Rouge</OPTION>
<OPTION VALUE="DC143C" <?php if(isSet($_POST['fontcolor']) && $_POST['fontcolor'] == DC143C) echo 'SELECTED="selected"'; ?>>Pourpre</OPTION>
<OPTION VALUE="0000FF" <?php if(isSet($_POST['fontcolor']) && $_POST['fontcolor'] == 0000FF) echo 'SELECTED="selected"'; ?>>Bleu</option>
<OPTION VALUE="00FFFF" <?php if(isSet($_POST['fontcolor']) && $_POST['fontcolor'] == 00FFFF) echo 'SELECTED="selected"'; ?>>Cyan</option>
<OPTION VALUE="008000" <?php if(isSet($_POST['fontcolor']) && $_POST['fontcolor'] == 008000) echo 'SELECTED="selected"'; ?>>Vert</option>
<OPTION VALUE="00FF7F" <?php if(isSet($_POST['fontcolor']) && $_POST['fontcolor'] == 00FF7F) echo 'SELECTED="selected"'; ?>>Vert printemps</option>
</select>
Et aussi, il y a t'il une solution pour mètre dans la valeur de contrôle php le sigle # qui se trouve au début des codes couleurs?
Re: Formulaire qui envoie plus rien...
Posté : 13 mars 2012, 19:34
par xTG
Les couleurs sont des chaînes de caractère, il faut donc les mettre entre quote.
