Réactualiser la page après formulaire

Signaler
Messages postés
4
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
18 avril 2008
-
Messages postés
4
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
18 avril 2008
-
Bonjour j'ai le formulaire suivant dont le traitement se fait sur la même page :

echo '

   <table><tr height="10px">
 

 <center style="width:100px;font-size:20px;background-color:#FF0055;font-weight:bold;margin-left:0px"> Posez votre question </center>

<form name="questionfaq" method="post" action="#" >
&nbsp Problème :
&nbsp <textarea name="Question" rows="6" cols="55" ></textarea>

<center></center>
</form> 
 ';




if(!isset($_POST['Question']))
echo 'erreur';
else
{ if(isset($_POST['Question']))
{
$question = $_POST['Question'];
echo($question);


 $sqlfaq = "INSERT INTO faq (Titre) VALUES ('".addslashes($question)."');";
 $resultat2=mysql_query($sqlfaq,$connection);
  
}
}

Le résultat est bien entré dans ma base de données mais je suis obligée de faire F5 pour l'afficher sur ma page ce qui fait qu'il me rentre une deuxieme fois ma varible dans la table....Je pensais mettre onclick="window.location.reload()" dans la balise form mais ça ne fonctionne pas...Comment faire?Merci d'avance de vos réponses.

6 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
bonjour,
    __ c'est quoi action="#" ?
    met <form name="questionfaq" method="post">
          ça devrait aller mieux...
    __ pourquoi 2 fois le même test ?


<?php
if(isset($_POST['Question']))
{    $question = $_POST['Question'];
      /*echo($question);*/
     $sqlfaq = "INSERT INTO faq (Titre) VALUES ('".addslashes($question)."');";
     $resultat2=mysql_query($sqlfaq,$connection);



}
?>

   <!--table><tr height="10px"-->
 

 <center
style="width:100px;font-size:20px;background-color:#FF0055;font-weight:bold;margin-left:0px">
Posez votre question </center>

<form name="questionfaq" method="post">

&nbsp Problème :
&nbsp <textarea name="Question"
rows="6" cols="55"
></textarea>

<center>
</form>

</center>









une chose encore... dans table, il doit y avoir des <tr><td>...</td>...></tr>
       et </table> !



<hr />




Cordialement                Bul         [mon Site]     [M'écrire]<hr />
En général, c'est absurde de généraliser.
Messages postés
4
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
18 avril 2008

Je voulais faire une table mais je l'ai enlevée merci de me l'avoir dit.

En fait je ne fais pas 2 fois le meme test le premier : !isset vérifie si la variable n'a rien et le 2eme isset si elle a quelque chose.
Et action=# revoie le traitement sur la page en cours, si je l'enlève plus rien en se passe.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
1°    >>En fait je ne fais pas 2 fois le meme test le premier :
        >>!isset vérifie
si la variable n'a rien et le 2eme isset si elle a quelque chose.
ben, oui. mais c'est isset ou pas, 2 tests sont inutiles, c'est l'un ou l'autre !

tu fais :
    si !isset(a)  traitement 1
    si isset(a)   traitement 2
fait plutôt :
    si i!isset(a)
traitement
1
    sinon          
traitement
2
en plus, seul traitement 2 est nécessaire
    donc... : si isset(a)
traitement
2

car  tester si !isset ==> mettre erreur ? pourquoi ?
ça ne va arriver qu'au 1er chargement de la page,
et ce n'est pas une erreur.

2° sur un formulaire, si action non cité : ça relance la même page
( pas sur que ça fonctionne comme ça avec # )

>>si je l'enlève plus rien en se passe.
    pas de raison.
    tu as une erreur ailleurs






<hr />




Cordialement                Bul         [mon Site]     [M'écrire]
<hr />


En général, c'est absurde de généraliser.
Messages postés
4
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
18 avril 2008

Tu as raison j'ai changé mon code :
echo '
';
if(isset($_POST['Question']))
{
$question = $_POST['Question'];
 $sqlfaq = "INSERT INTO faq (Titre) VALUES ('".addslashes($question)."');";
 $resultat2=mysql_query($sqlfaq,$connection);
echo "Le champ monchamp a pris la valeur $question dans la BDD";
}
else
{
// on initialise les variables à vide pour ne pas avoir d'erreur
$question = "";
}
//affichage du formulaire
 echo'<center style="width:100px;font-size:20px;background-color:#FF0055;font-weight:bold;margin-left:0px"> Posez votre question </center>

<form name="questionfaq" method="post" >
&nbsp Problème :
&nbsp <textarea name="Question" value="'.$_POST["Question"].'" rows="6" cols="55"></textarea>

<center></center>
</form>

';

La valeur se met bien dans la base de donnée.
Sur la même page dans mon autre div, il y a l'affichage des questions mais quand j'envoi le formulaire ça ne se met pas à jour comment faire?de plus quand je réactualise ma page ma question est entrée de nouveau dans ma base...comment faire?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
<center style="width:100px;font-size:20px;background-color:#FF0055;font-weight:bold;margin-left:0px"> Posez votre question </center>

<form name="questionfaq" method="post" >
&nbsp Problème :

&nbsp <textarea name="Question" rows="6" cols="55">
<?php
if(isset($_POST['Question']))
{    $question = $_POST['Question'];
/*
et l'ouverture, la connexion à la base ?
et peut-être erreurs de syntaxe en php, mais
ce sont des questions php, alors
*/
     $sqlfaq = "INSERT INTO faq (Titre) VALUES ('".addslashes($question)."');";
     $resultat2=mysql_query($sqlfaq,$connection);
     echo $question;
}
?>
</textarea>

<center>
</center>
</form>

<hr />



Cordialement            Bul         [mon Site]     [M'écrire]
<hr />


En général, c'est absurde de généraliser.
Messages postés
4
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
18 avril 2008

La connexion est plus haut sur mon fichier. Mais je ne l'ai aps mise. C'est bon j'ai trouvé une solution à mon problème en créant une sorte de mini chat.