Page 1 sur 1

Saisie des données dans la BD et réaffichage du formulaire

Posté : 05 avr. 2006, 16:27
par barbarien36
Bonjour,

J'avais déja posé la même question sur le message suivant. Malheureusement un probléme de connexion et je n'ai pu venir compléter ma demande. http://www.phpfrance.com/forums/voir_su ... texte-.php

Donc je vais reposer ma question. Je souhaiterai dans la même page faire le formulaire de saisie et la partie insertion. Mon probléme ce situe dans la partie si $soumis=1. En effet, je ne sais pas comment faire pour réafficher mon formulaire, et donc repasser ma variable $soumis à 0.
De plus lorsque je lance ma pages il me dit "Notice: Undefined index: soumis in c:\program files\easyphp1-8\www\dip2france\ajout_personne.php on line 70", ce qui est normal, car je n'initialise pas ma variable $soumis. Seriez vous comment je pourrais résoudre ce problème.

Code : Tout sélectionner

$soumis=$_POST['soumis']; if ($soumis==1) { //Page d'affichage aprés appuye sur envoi $idpre=$_POST['select_pre']; $sql = "INSERT INTO personne VALUES (DEFAULT,'$idpre')"; $requeteID = pg_query($sql); echo "<form action='{$_SERVER["PHP_SELF"]}' method='post'> \n"; echo "<input type='hidden' name='soumis' value='0'>"; echo "<input type='submit' name='envoye' value='Envoyer'> \n"; echo "</form>"; } else { //Formulaire de saisie echo "<form action='{$_SERVER["PHP_SELF"]}' method='post'> \n"; //Créer une variable soumis initialiser à 1 echo "<input type='hidden' name='soumis' value='1'> \n"; //Creation tableau echo "<table> \n"; echo"<tr> \n"; echo"<td>"; echo "Pr&eacute;nom : "; echo"</td> \n"; echo"<td> "; echo "<input type=\"text\" name=\"form_prenom_personne\" >\n"; echo"</td> \n"; echo"</tr> \n"; echo"</table>"; echo "<input type='submit' name='envoye' value='Envoyer'> \n"; echo "</form>";
Si jamais je n'ai pas été sufisament clair, n'hésité pa à me le dire, et je vous donnerai tout les infos.

A + et merci

Ludo[/url]

Re: Saisie des données dans la BD et réaffichage du formulai

Posté : 05 avr. 2006, 16:30
par mario
De plus lorsque je lance ma pages il me dit "Notice: Undefined index: soumis in c:\program files\easyphp1-8\www\dip2france\ajout_personne.php on line 70", ce qui est normal, car je n'initialise pas ma variable $soumis. Seriez vous comment je pourrais résoudre ce problème.

Code : Tout sélectionner

$soumis=$_POST['soumis']; if ($soumis==1) {[/quote] tu dois tester si $_POST['soumis'] est défini. jète un oeil sur la fonction [url=http://www.php.net/isset]isset()[/url] Si c'est le cas, tu peux alors déclarer ta variable [php]$soumis=$_POST['soumis'];[/php]

Posté : 05 avr. 2006, 16:34
par betaphp
Au lieu de tester le remplissage de ta variable soumis tu teste si l'internaute à cliquer sur ton bouton envoyer de cette façon :
if(isset($_post['nomdetonbouton']))
{
//requete
}
else {
//formulaire
}
:)

Posté : 05 avr. 2006, 16:38
par barbarien36
Purééééé j'avai un exemple avec isset sous les yeux, merci.

Et pour recharger mon formulaire vous auriez une idée ?

Posté : 05 avr. 2006, 17:02
par Invité
recharger ton formulaire ça signifie ? :lol:

Posté : 05 avr. 2006, 17:29
par barbarien36
:shock: Cela voudrai t'il dire que ce n'est pas très clair :lol:


c a d que lorsque je valide mon formulaire je rentre dans la partie ou je marqué "//Page d'affichage aprés appuye sur envoi ". Alors j'enregistre mes infos dans ma BD, mais je reste sur une page blanche. Je ne sais pas comment faire pour revenir à mon formulaire. Enfin ces pas vrai puisque j'y arrive si je fais un

Code : Tout sélectionner

echo "<input type='submit' name='envoye' value='Envoyer'> \n";
cela fonctionne sauf que cela me rajoute un bouton que je ne veux pas, je veux que ce soit complétement transparent pour l'utilisateur.

Merci

Ludo

Posté : 05 avr. 2006, 22:15
par leroimarco
Salut barbarien36,

Je pense que tu trouveras pas mal d'éléments ici : http://www.phpfrance.com/forums/voir_sujet-12858.php

Regardes notamment la partie concernant l'affichage du formulaire. En fait tu fais une grande boucle que tu ne parcours que si ton formulaire est validé. Sinon, tu affiches simplement le formulaire. Ca ressemble à ça :

si (formulaire envoyé) {
    test des différents champs
    si (pas d erreur de remplissage) {
        enregistrement dans la bdd
        envoi vers une autre page (à l'aide de header(Location)
    }
    sinon {
        affichage des erreurs de remplissage du formulaire
    }
}
Code html de début de page et affichage du formulaire
Voilà un peu le style du truc.

@++[/code]

Posté : 06 avr. 2006, 09:33
par barbarien36
Merci pour l'info car il y a éffectivement plein de super bonne idée. Malheureusement pour retourner au formulaire il utilise un hyperlien

Code : Tout sélectionner

print("<p>Retour vers le formulaire de base, cliquez <a href=\"". $_SERVER['PHP_SELF'] ."\" title=\"Retour vers le formulaire\">ICI</a></p>");
Hors moi je souhaite que cela soit transparent pour l'utilisateur, et donc qu'il n'est aucune action à faire.

Posté : 06 avr. 2006, 10:10
par betaphp
un bon
header("Location : page.php"); 

Code : Tout sélectionner

location.replace("page.php");

Code : Tout sélectionner

<meta http-equiv="Refresh" content="0; URL=http://adresse_de_redirection.com">
aux choix :lol: