Pb de onLoad html + js !! [Résolu]

Signaler
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007
-
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007
-
Salut à vous!

je voudrais comprendre pourquoi mon code ne fonctionne pas!!

Mon but est d'afficher des msg d'erreurs spécifiques à un champ de mon formulaire.

Pour cela j'ai ma première page de formulaire qui se nomme test.php qui pointe sur une autre page, panier.php.

Les champs contenus dans test.php sont vérifiés une fois validation (donc dans le header de panier.php) avec le code suivant:

<?php

session_start();

ob_start();

$retour=0;

//paragraphe que j'ai coupé sur $verif=checkdate...

if($verif != 1) {

$_SESSION['ressaisir_date']="oui";

$retour++;

}

if($_POST['Nbre_personne'] == '...choisir' || $_POST['Nbre_personne'] == 0) {

$_SESSION['ressaisir_pers']="oui";

$retour++;

}

if($_POST['Duree'] == '...choisir') {

$_SESSION['ressaisir_Duree']="oui";

$retour++;

}

if($_POST['Nombre_voiture'] == '...choisir') {

$_SESSION['ressaisir_voit']="oui";

$retour++;

}

if($retour != 0) {

$_SESSION['retour']=$retour;

header('location:test.php');

exit;

}

?>



Ma variable $retour fonctionne bien puisque j'affiche le bon nombre
d'erreur dans 'test.php' après convertions de mes variables php en
variables JS (convertions effectuées après mon header de 'test.php').

Mais mon onLoad de test.php ne fonctionne que si TOUS les champs sont incorrects!!!??? mystère...







<script language="JavaScript">

function VerifChamps() {

if(ressaisir_date == 'oui') {

document.getElementById("NbError1").style.display="";

}

if(ressaisir_Duree == 'oui') {

document.getElementById("NbError2").style.display="";

}

if(ressaisir_pers == 'oui') {

document.getElementById("NbError3").style.display="";

}

if(ressaisir_voit == 'oui') {

document.getElementById("NbError4").style.display="";

}

}

</script>



la fonction recherche par id les textes cachés du style:


Date incorrecte!
par exemple.



Si vous avez une idée de pourqoui ça ne marche pas ou que vous avez eu un pb similaire, n'hésitez pas!!!

Merci d'avance.



Jo

15 réponses

Bon j'ai trouvé ce problème de mes...

En fait le truc c'est que à chaque fois il fallait signaler le cas échéant:

if(isset ($_SESSION['ressaisir_date']) && $_SESSION['ressaisir_date'] == 'oui') {

echo '<script language="JavaScript">ressaisir_date="oui";</script>';

}

else{echo '<script language="JavaScript">ressaisir_date="";</script>';}

par exemple.

Sinon ca bugait.

Parler de Dieu nous a aidé...

Serait-ce le début d'une foi profonde inavouée?



++ bultez et merci pour tout!!

C'est super sympa de répondre !!



Jo
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,
et c'est quoi "ressaisir_date
" et les autres ressaisir.?
comment sont-ils transmis au javascript depuis le PHP ?
Cordialement. Bul. ~
Site
~~
[mailto:marcelBultez@tiscali.fr Mail
]~
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007

Salut, merci d'avoir répondu!

Ils sont transmis en conversion de variable comme suit:



if(isset ($_SESSION['ressaisir_date']) && $_SESSION['ressaisir_date'] == 'oui') {

echo '<script
language="JavaScript">ressaisir_date="'.$_SESSION['ressaisir_date'].'";</script>';

}

if(isset ($_SESSION['ressaisir_Duree']) && $_SESSION['ressaisir_Duree'] == 'oui') {

echo '<script
language="JavaScript">ressaisir_Duree="'.$_SESSION['ressaisir_Duree'].'";</script>';

}

if(isset ($_SESSION['ressaisir_pers']) && $_SESSION['ressaisir_pers'] == 'oui') {

echo '<script
language="JavaScript">ressaisir_pers="'.$_SESSION['ressaisir_pers'].'";</script>';

}

if(isset ($_SESSION['ressaisir_voit']) && $_SESSION['ressaisir_voit'] == 'oui') {

echo '<script
language="JavaScript">ressaisir_voit="'.$_SESSION['ressaisir_voit'].'";</script>';

}

Voilà si tu as une idée fais moi signe, je n'ai toujours pas trouvé!!

Merci d'avance.



Jo
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
et si on avait la page générée au lieu
de la page php ?
car là, on ne peut pas ni voir, ni tester...
( et si je peux me permettre : cela me parait lourd )

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007

tu veux que je te mail le code des 2 pages php?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
non, non !
les pages php on ne pourrait pas les
tester sans l'environnement complet...
un "extrait" de la page htm générée
[ click droit, afficher la source et mettre
ici les lignes qui posent problèmes ]

par exemple :

if(isset ($_SESSION['ressaisir_date']) && $_SESSION['ressaisir_date'] == 'oui') {
echo '<script language="JavaScript">ressaisir_date="'.$_SESSION['ressaisir_date'].'";</script>';
}

devrait nous donner ça :

<script language="JavaScript">
ressaisir_date="oui";
</script>

et on ( toi aussi ) verrait (s) les erreurs ?

Cordialement. Bul. ~Site
~~
[mailto:marcelBultez@tiscali.fr Mail
]~
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007

Voici mon code de test.php, j'ai fait le plus court possible ds les
limites du lisible pour l'affichage rien que pour vos yeux...:)



test.php:



<?php

session_start();

//Gestion d'erreur pour le header

ob_start();

$_SESSION['valide']="oui";

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<head></head>

<?php

//Ne peut être mis dans le header !!

if(isset ($_SESSION['ressaisir_date']) && $_SESSION['ressaisir_date'] == 'oui') {

echo '<script
language="JavaScript">ressaisir_date="'.$_SESSION['ressaisir_date'].'";</script>';

}

if(isset ($_SESSION['ressaisir_Duree']) && $_SESSION['ressaisir_Duree'] == 'oui') {

echo '<script
language="JavaScript">ressaisir_Duree="'.$_SESSION['ressaisir_Duree'].'";</script>';

}

if(isset ($_SESSION['ressaisir_pers']) && $_SESSION['ressaisir_pers'] == 'oui') {

echo '<script
language="JavaScript">ressaisir_pers="'.$_SESSION['ressaisir_pers'].'";</script>';

}

?>





<script language="JavaScript">

function VerifChamps() {

if(ressaisir_date == 'oui') {

document.getElementById("NbError1").style.display="";

}

if(ressaisir_Duree == 'oui') {

document.getElementById("NbError2").style.display="";

}

if(ressaisir_pers == 'oui') {

document.getElementById("NbError3").style.display="";

}

}

</script>

<form method="post" action="panier.php" name="form" class="Style23" id="form_voyage">

<tr>

<td width="135" align="left">&nbsp;




Date
incorrecte!
</td>

<td width="236" class="StyleEtiquette" align="left">Dur&eacute;e*

<select name="Duree" size="1" id="duree">

<option selected="selected">...choisir</option>

<option value="1">01:00:00 h</option>

<option value="2">02:00:00 h</option>

<option value="3">03:00:00 h</option>

<option value="4">04:00:00 h</option>

</select>


Duree
incorrecte!
</td>

</tr>

<tr>

<td width="134" height="51" class="StyleEtiquette">Nb. de personnes*

<select name="Nbre_personne" size="1" id="nb_pers">

<option selected="selected">...choisir</option>

<option value="1">1</option>

<option value="2">2</option>

<option value="3">3</option>

<option value="4">4</option>

</select>


Nb. de personnes
incorrect!
</td>

</tr>

<tr>

<td height="53" colspan="2" class="StyleEtiquette"></td>

</tr>



</html>

<?php

ob_end_flush();

?>



et là panier.php:



<?php

session_start();

//Gestion d'erreur pour le header

ob_start();

//La session a expiré !

if(!isset ($_SESSION['valide'])) {

header('location:pagevide.php');

exit;

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<head>

</head>

<?php

$retour=0;

$_SESSION['ressaisir_date']="";

$_SESSION['ressaisir_Duree']="";

$_SESSION['ressaisir_pers']="";

$_SESSION['ressaisir_voit']="";



if(isset ($_POST['Date'])) {

$_SESSION['Date']=$_POST['Date'];

}

if(isset ($_POST['Duree'])) {

$_SESSION['Duree']=$_POST['Duree'];

}

if(isset($_POST['Nbre_personne'])) {

$_SESSION['Nbre_personne']=$_POST['Nbre_personne'];

}

if(isset($_POST['Nombre_voiture'])) {

$_SESSION['Nombre_voiture']=$_POST['Nombre_voiture'];

}

//verif format date

$jour=substr($_SESSION['Date'],0,2);

$mois=substr($_SESSION['Date'],3,2);

$annee=substr($_SESSION['Date'],6,4);

$verif=checkdate($mois,$jour,$annee);

if($verif != 1) {

$_SESSION['ressaisir_date']="oui";

$retour++;

}

if($_POST['Nbre_personne'] == '...choisir') {

$_SESSION['ressaisir_pers']="oui";

$retour++;

}



if($_POST['Duree'] == '...choisir') {

$_SESSION['ressaisir_Duree']="oui";

$retour++;

}

if($retour != 0) {

header('location:test.php');

exit;

}

?>



<?php echo "je suis passé!!";?>



</html>

<?php

ob_end_flush();

?>



Voilà en espérant que tout ceci aboutira !!

Je te remercie d'avance...



Jo
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007

Ca ne se voit pas trop mais les 2 pages sont ci dessus!!

Donc faites attention dans votre copier coller.

Merci à vous...

Dieu vous le rendra en centuple!!

+
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
la page générée !!! pas la page php !!!
alors je l'ai fais, et là on voi
immédiatement l'erreur ....

...<head></head>
<script language="JavaScript">ressaisir_Duree="oui";</script>
<script language="JavaScript">ressaisir_pers="oui";</script>
...

function VerifChamps() {
if(ressaisir_date == 'oui') {
document.getElementById("NbError1").style.display="";
} ...

et "ressaisir_date" n'est pas défini => ça plante.

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
j'ai oublié de signaler l'erreur php,
mais peut-être uniquement sur
l'extrait donné ?

Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp\www\essais\test.php:3) in c:\program files\easyphp\www\essais\test.php on line 4

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
j'allais aussi dire que, dans un
truc comme ça, dieu s'en fiche.
et que si on compte sur lui pour
nous rendre quelque chose...
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007

lol bultez, le souci c'est que ressaisir_date existe.

Tu l'as oublié en chemin mais il est dans le code si tu regardes...

Bref, faire une conversion de variable ou non donc:

<script language="JavaScript">ressaisir_Duree="oui";</script>

ou

echo '<script language="JavaScript">ressaisir_date="'.$_SESSION['ressaisir_date'].'";</script>';

donne le même résultat...négatif!

De mon côté je n'ai pas d'erreur de session cache limiter...c'est que
tu n'as pas mis ob_start() en header et ob_end_flush(); tout à la fin
de ta page.

Sinon c'est plutot bizarre cette erreur.

je tente d'autres trucs...

++



PS: lol dieu c t une façon de dire..mais ceci dit si tu y crois sait on jamais !





(perso...pour que tu ne te fasses pas d'idées je n'y crois pas.)
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007

Si par contre tu connais une solution moins relou à coder...n'hésites pas!

+
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
c'est exactement ce que je disais.

et comment peut-on encore croire en un
quelconque être suprème à notre époque ?
ça me sidère ça...

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
194
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
13 avril 2007

mdr tu déchries bultez, mais jsuis tout à fait dac !!

Vive la pie...