Perte de bgcolor avec window.alert

Signaler
Messages postés
71
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
17 février 2010
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
bonjour, voilà, j'ai un petit problème :
j'ai un formulaire mail sur un site pour que les internautes puissent écrire des messages et je détecte en javascript si les champs sont bien remplis.
lorsqu'un champ est mal rempli, j'affiche un window.alert du style "veuillez rentrez votre nom !"
le prolème c'est que quand je dis OK au window.alet, ma page html perd son bgcolor, ce qui est très inesthétique !! j'ai essayé de supprimer les cookies et ensuite de rafraichir la page, mais ça ne marche pas puisque je le fais au moment de l'apparition du window.alert et non quand on dit OK au window.alert. Peut-on écouter le bouton OK du window.alert ?
 il y a-t-il une autre solution + efficace ??

sinon, tant que j'y suis, quand l'internaute a écrit son message, son nom et tout ça, mais qu'il a fait une erreur dans l'écriture de son adresse mail, j'affiche le window.alert "adresse mail non valide", il dit, OK, mais tout le message est perdu, il faut tout réécrire !! est-ce normal ?? peut-on trouver une solution ? je précise que les formulaires ne sont pas en javascript, mais en html, avec interaction PHP.

Merci d'avance, mais c'est quand même la première question qui m'importe le plus !
Ciao !

8 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

>>
le problème quand je dis OK ma page html perd
son bgcolor
    réellement aucune raison.
    mais sans billes, difficile de trouver où il y a une erreur.

>>mais tout le message est perdu, il faut tout réécrire !! est-ce normal
    toujours pas de raison... sauf rechargement de la page,
       ce qui ne devrait pas être.. s'il y a une erreur
    mais sans billes, difficile de trouver où il y a une erreur.

>>je précise que les formulaires ne sont pas en javascript, mais en html,
    ça me rassure ! les formulaires en javascript, ça n'existe pas.








<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
71
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
17 février 2010

et à part ça, est-ce qu'il est possible d'écouter la validation du window.alert ??
du coup je pense que je me débrouillerai en disant "si je clique sur le OK du window.alert, alors je rafraîchit la page"...

C'est possible ça ou pas ??

Pour le code, en gros, c'est ça, mais j'ai beaucoup élagué !
Remarque : quand un window.alert apparît lorsqu'un champ est mal rempli, je reviens sur ma page et perd le bgcolor et le message déjà écrit. En revanche quand j'utilise à nouveau le formulaire <select> (pour réécrire mon message), le bgcolor réapparaît !

le formulaire :

<form action= "" method="POST">
                      Envoyer un mail à :<select name="adresse"> <?
                      $req=mysql_query ("SELECT * FROM mail ORDER BY id_mail ASC");
                       while ($ligne=mysql_fetch_array($req)){
                      echo "<option value =".$ligne['mail'].">". $ligne['nom_fonction']."</option>"                        ;}?></select>

Nom :
                    Prénom :
                   

Votre texte :<textarea name= "text" rows="7" cols="45"></textarea>
</form>

le php+javascript :

$verif_nom=false;
$verif_text=false;
if (isset($_POST['nom'])&& isset($_POST['text']))    $nom $_POST['nom']; $text stripslashes($_POST['text']);
if ($nom "" $text "")
echo "<script>window.alert("Veuillez remplir tous les champs...");</script>";
else $verif_nom =true; $verif_text=true;

if ($verif_nom==true && $verif_text==true)
 //j'envoie le mail
Messages postés
243
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
21 décembre 2007
2
Salut
Je ne sais pas si ça peut régler ton problème

<?php
$verif_nom=false;
$verif_text=false;
if (isset($_POST['nom'])&& isset($_POST['text']))    $nom $_POST['nom']; $text stripslashes($_POST['text']);
if ($nom "" $text "")
{
?>
<script>alert("Veuillez remplir tous les champs...");</script>"
<?php
}
else $verif_nom=true; $verif_text=true;

if ($verif_nom==true && $verif_text==true)
 //j'envoie le mail
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
si tu fais les contrôles en php
( et d'ailleurs if ($nom = = "" $text == ""

)   ce ne serait pas plutôt

if ($nom "" || $text ""


)

? )




c'est que tu ne renvoie pas la page correctement ( sans bgcolor par exemple )
regarder la page générée. ça doit manquer.


<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
71
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
17 février 2010

pour le if ($nom = = "" $text == "" ) , c'est juste une erreur de frappe quand j'ai écrit le message.
sinon, je ne comprends pas ce que tu veux dire :
/******   situ fais les contrôles en php( et d'ailleurs if ($nom "" $text "" )  ce ne serait pas plutôt if ($nom == "" || $text == "" ) ? )
c'est que tu ne renvoie pas la page correctement ( sans bgcolor par exemple )
regarder la page générée. ça doit manquer.********/

sinon, aujourd'hui, j'essaierai ce que me disait Yousfane, et on verra bien... je vous tiens au courant !

A+
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
la page affichée est créée par php, non ?
    en cas d'erreur tu ne dois pas renvoyer le bgcolor.

>>..tout le message est perdu..
    comme là encore tu fais les contrôles en php, il faut renvoyer ce qui
       a été saisi :
          " />




<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
71
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
17 février 2010

la page n'est pas créée entièrement en php, donc le bgcolor est indépendant de ça !
ok pour retrouver le message, mais du coup, je ne peux plus suivre mon idée de rafraichir la page après le window.alert puisque les $_POST sont gardés, et ça fait un message d'avertissement dont je me passerait bien (enfin surtout l'internaute)!

précisions :
- le problème du bgcolor n'atteind pas tout le fond du site ! (c'est bizarre je sais), en fait, la couleur à droite du site reste, et c'est en bas que c'est blanc.

- pendant un window.alert, c'est une page blanche qu'il y a derrière. est-ce normal ? et je pense que c'est cette page blanche qui fait bugger quand je reviens sur le site véritable, bien qu'au fond je n'ai jamai changé de page !

- le problème n'existe pas sous ie, c'est sous firefox qu'il y a soucis !

j'ai essayé la solution de Yousfane, en n'incluant pas le script dans le echo du php, mais c'est toujours pareil !

et je repose ma question du départ :
est-ce qu'il est possible d'écouter la validation du window.alert ??

a+
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>la page n'est pas créée entièrement en php, donc le bgcolor est indépendant de ça !
    mais si.
    puisque le contrôle se fait en php, c'est ce que répond le php qui est affiché.
    ( ou alors c'est de l'AJAX )

    affiche donc la source de la page après l'alert...


>>est-ce qu'il est possible d'écouter la validation du window.alert ??
    ça ne veut rien dire....
    alert affiche un message. dès qu'on clique sur "OK", le javascript continue.

>>le problème du bgcolor n'atteind pas tout le fond du site ! (c'est
bizarre je sais),
>>en fait, la couleur à droite du site reste, et c'est
en bas que c'est blanc.
    ah... ça n'a plus rine à voir ça !
    mais : t'as pas de bol, ma   a été cassée hier. alors sans un ch'tit extrait du code....



<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />