11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'aimerai afficher un message de "validation". J'aimerai qu'un message apparaisse après avoir effectuer une action.

Exemple: L'utilisateur s'inscrit à la newsletter, "Votre inscription a bien été prise en compte".

Je ne sais pas du comment aborder le problème si quelqu'un pourrait me mettre sur la voie !

Mon formulaire:

  // inscription et desinscription a la newsletter
  echo '<form class="form_faceb2" method="post" action="includes/newsletter.php" id="formulaire" onsubmit="return envoyer5();">
        <fieldset>
          <legend>La newsletter</legend>
          <table>
          <tr>
          <td><label>Votre adresse e-mail:</label></td>
          <td><input type="text" name="email" id="email" onChange="SupprEspaces(this);" /></td>
          </tr>
          <tr>
          <td><input type="radio" name="inscription" value="0" checked />&nbsp;S\'inscrire</td>
          <td><input type="radio" name="inscription" value="1" />&nbsp;Se d&eacute;sinscrire</td> 
          </tr>
          <tr>
          <td><label for="captcha">Recopiez le mot : <img src="includes/captcha.php" alt="Captcha" /></label></td>
      		<td><input type="text" name="captcha" id="captcha" /></td>
          </tr>
          <tr>
          <td><input type="submit" name="enregistrer" id="enregistrer" value="Envoyer"  />
  		        <input type="reset" id="reset" id="reset" value="Annuler" /></td>
          </tr>
          </table>
        </fieldset>
        </form>';    


Traitement de formulaire:

  session_start();
  mysql_connect('localhost', 'root', '');
  mysql_select_db('lefunambule');
  
  $email=addslashes ($_POST['email']);
  $inscription=addslashes ($_POST['inscription']); 
  if(!empty($_POST['captcha'])){
    	if($_POST['captcha'] == $_SESSION['captcha']){
    		  
    	  if ($inscription == 0) {
          $query = "INSERT 
                    INTO t_newsletter
                    VALUES('$email')";
                      
           mysql_query($query); 
           
           
           header('location:../index.php?id=3005');                      
        }
        elseif ($inscription == 1) {
          $query = "DELETE FROM t_newsletter WHERE email='" . $email ."'"; 
                      
           mysql_query($query);   
           echo 'Votre d&eacute;sinscription &agrave; la newsletter &agrave; bien &eacute;t&eacute; prise en compte, Vous allez &ecirc;tre redirig&eacute; dans quelques secondes...';
           header('location:../index.php?id=3005');          
        }  	  		  
    	}	  
    	else{
    	   	echo 'Le captcha n\'est pas bon, vous allez &ecirc;tre redirig&eacute; dans quelques secondes...';
    	   	header('location:../index.php?id=3005');
    	}   	
  }
  else{
  	echo 'Il faut remplir tous les champs, Vous allez &ecirc;tre redirig&eacute; dans quelques secondes...';
  	//header ("Refresh: 3;URL=../index.php?id=3005");
  	header('location:../index.php?id=3005');
  }	
Bonsoir,


puisque dans tous les cas tu fais une redirection, je pense qu'il va te falloir, dans le cas ou la chose se passe bien :
- ajouter un paramètre à ton url, genre " &retour=success " ( attention aux F5 qui réaffichera le message et peut faire peur à l'utilisateur dans certains cas )
- ajouter en session un paramètre du même style " $_SESSION['success_newsletter'] = true; "

De cette façon, lorsque tu afficheras la page voulu, tu pourras voir si il y a ce paramètre ( dans l'URL avec un $_GET ou dans la session avec un $_SESSION ) et si oui, soit ajouter une alerte en javascript, soit afficher un message qui dira que tout s'est bien passé.
Modifié par n3k0 (01 Jun 2011 - 23:08)