Vous n'êtes pas identifié(e).
salut a tous,
j'ai un petit javascript qui doit normalement verifier si le formulaire est complet, dans le cas contraire, il affiche un popup pour dire que ce n'est pas bon... jusque la tout va bien, l'alerte se met en route mais quand je clic ok sur le popup pour corrigé, la le formulaire part quand même...
quelqu'un peut il m'expliquer d'ou viens le soucis svp.
Hors ligne
il manque return false
a++
Hors ligne
arf merci pierrot, je suis un gros nul
Hors ligne
>>je suis un gros nul
je confirme
a++
Hors ligne
si c'es comme ca:
l'erreur reste la même... je continu les recherche...
Hors ligne
Bonsoir,
Si ca peux t'aider, il y a une petite méthode de programmation qui me plait a utiliser, qui consiste à faire l'inverse de ce que tu fais. Je m'explique.
On commence par tester ce qui n'est pas acceptable plutôt que de savoir si les conditions sont remplies pour continuer. On va me dire cela revient au même. Et je vais dire non car :
1) Le moindre hic, hop on sort de la fonction et on affiche le msg d'erreur. Par conséquent, pas de lecture inutile de code dans la fonction (définition des variables, etc...).
2) Le coeur de la fonction n'est pas inclue dans un bloc ou sous bloc de code et lorsque l'on y accède c'est que tout est ok pour le faire (typage des variables, contenu des variables, conditions particulières non remplies, etc...
3) Le deboggage est plus simple
4) La relecture du code est plus aisée et facile lorsque l'on revient dessus quelques temps après.
Dernière modification par Jc (13-07-2011 18:40:32)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
merci Jc, c'est cool , je comprend bien l’intérêt de ta réponse... le soucis est que je ne fait du php que depuis 3 mois (dur dur mais j'aime !!!), java rien du tout...
c'est pour te dire que j'ai bien compris le principe mais je suis incapable le travail sans le voir. connait tu un tuto a ce sujet ou serait tu en mesure de me l'expliquer toi même, si tu as le temps... je ne parle plus d'un tuto sur java ou mon soucis mais pour comprendre comment tester au fur et a mesure si ca marche aussi pour php car avant de me mettre au java je doit progresser .
merci a plus.
Hors ligne
On est en javascript ici pas en java hein.
En l'etat actuel de ta fonction 2 cas de figure :
1) si la valeur d'une de tes variables est >0 sans pour autant qu'elle soit remplie dans ton formulaire, tu auras un comportement erroné de ta fonction.
2) Ta fonction ne retourne rien quand elle soumet le formulaire.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
oui,oui javascript
bon je reprend tout a zero:
et aussi j'ai mis le type input "type button" qui était en "submit" la ca marche...
est ce que j'ai bon ?
Hors ligne
non, c'est pas bon:
j'ai voulu ajouter la verif du champ prénom qui n’était plus présente et la ça recommence. si je comprend bien, dans un premier temps javascript me dit nom pour le champ prénom mais pour le champ nom qui lui est bien rempli javascript envoie la message quand même.
c'est ca ?
Dernière modification par steeve (13-07-2011 22:20:02)
Hors ligne
non :
Sur ton code initial tu as oublié d'ouvrir l'accolade après le else hein.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
tout çà pour çà
2 lignes de js devrais suffirent
bon courage :D:D:D:D:D:D:D:D:D
a++
Hors ligne
est ce que je comprend bien ?
si nom = rien / alert() et annule le lien
si prenom = rien /alert() et annule le lien
si non envoie le formulaire
Hors ligne
bon je crois que javascript n'est pas encore pour moi, depuis hier j'ai vu au moins 50 post sur des forum, j'ai relu cette page 130 fois mais impossible de comprendre... je vais pas continuer vous faire perdre de temps !
est-ce possible en php ?
Hors ligne
oui, mais quel intérêt ????
a++
Hors ligne
@ Pierrot : Pour le faire en 2 lignes, faudrait-il encore que ses champs soient nommés en array().
@Steeve: Prends ton code initial, rajoutes un { après ton else, et ca devrait fonctionner malgré tout.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
>>Pour le faire en 2 lignes, faudrait-il encore que ses champs soient nommés en array().
non
a++
Hors ligne
en fait, comme vous le savez je suis un débutant.
pour vous expliquer je vais vous parler de moi:
je suis depuis prés de 17 ans utilisateur de chiens de sport, depuis 6 ans entraîneur et j'ai eu l'occasion durant ces 6 dernières années de mettre 3 chiens en final des championnat de France dont un a était vainqueur en 2010. (vous allez comprendre)
si je vous dit ça c'est pour vous dire que les chiens ont très peut de secret pour moi tout comme pour vous les langages...
On m'a souvent poser une questions: pourquoi un chien gratte tout le temps quand il se couche dans son panier ???
je pourrait répondre, c'est génétique il tiens ça de ces ancêtres et vous sauriez qu'il faut chercher coté génétique, mais ou ???
la réalité est que c'est un instinct descendant du loup qui en pleine nature fait ça pour nettoyer l'endroit ou il se couche afin de ce débarasser des parasites qui sont sur le sol et nos chien ne savent meme pas pourquoi ils le font mais c'est inscrit en eux...
la 1er réponse est bonne mais vague pour un néophyte et ne répond pas vraiment a la question sauf pour un connaisseur, la 2eme est la réponse mais pour le savoir vous n'avez rien cherché.
je suis un néophyte et je pense que le genre de réponse que vous me donnez ressemble a ma 1er réponse (ce n'est pas une critique, loin de la).
je ne suis pas asse fort pour ma débrouiller seul si je ne vois pas un tuto ou 1 exemple, je ne comprend pas toujours les sous entendue...
pour finir et pour que rien ne soit mal interprété je suis content d’être parmi vous et j'ai déjà appris de nombreuses choses sur php grâce a vous:
j'ai su faire un site en php, avec 3 sessions différente:
1 espace admin, 1espace commerçant et 1 espace visiteur, 1 système de news et d'autre truc mais je ne vais pas tout cité...
merci pour tout: ce n'est pas un au revoir !!! je viendrais encore vous faire rire, c'est sur.
Hors ligne
au final, comme tout le monde je suis capable de faire un copier coller, j'ai fait ca:
<?php
// Ici on teste si le formulaire a été envoyé : Envoyer correspondant au nom du bouton
if (isset($_POST['Envoyer'])) {
// Ensuite si aucun champs n'est vide donc <>"" (différent de vide)
if(($_POST['nom'] <> "") AND ($_POST['prenom'] <> "") AND ($_POST['adresse'] <> "") AND ($_POST['ville'] <> "") AND ($_POST['telephone'] <> "") AND ($_POST['email'] <> "") AND ($_POST['message'] <> "")) {
//On créé une varaible qui nous permettra d'afficher le remerciement
$formulaire = "OK";
// On peut envoyer le mail
$msg = "nom:\t$nom\n";
$msg .= "prenom:\t$prenom\n";
$msg .= "adresse:\t$adresse\n\n";
$msg .= "ville:\t$ville\n\n";
$msg .= "telephone:\t$telephone\n\n";
$msg .= "email:\t$email\n\n";
$msg .= "message:\t$message\n\n";
$recipient = "...";
$subject = "Formulaire / ...";
$mailheaders = "From:...\n";
$mailheaders .= "Reply-To: $sender_email\n\n";
mail($recipient, $subject, $msg, $mailheaders);
} else { // Sinon, donc si un des champs est vide
$formulaire = "KO";
}
} else { // Ici, si le formulaire n'a pas été envoyé
$formulaire = "KO";
}
?>
</head>
<body>
<?php
include('inc/en_tete.html')
?>
<?php
include('inc/menu.html')
?>
<div id="tempatemo_content_wrapper">
<div id="templatemo_content">
<div id="content_panel">
<div id="column_w610">
<div class="header_01">Contacter CE-Promotion</div>
<center>
<img src="lib/images/contact.jpg" width="45%"></center>
<?php if($formulaire == "KO") { ?>
<form method="post" action="contact.php">
<p class="double">
<label for="nom">Nom: </label>
<input name="nom" type="text" id="nom" <?php if ((isset($_POST['nom'])) && ($_POST['nom'] == "")) { ?> class="Input_erreur" <?php } ?> onfocus="this.className='';" value="<?php echo $_POST['nom'] ; ?>" />
</p>
<p class="double">
<label for="prenom">Prénom: </label>
<input name="prenom" type="text" id="prenom" <?php if ((isset($_POST['prenom'])) && ($_POST['prenom'] == "")) { ?> class="Input_erreur" <?php } ?> onfocus="this.className='';" value="<?php echo $_POST['prenom'] ; ?>"/>
</p>
<p class="double">
<label for="adresse">Adresse: </label>
<input name="adresse" type="text" id="adresse" <?php if ((isset($_POST['adresse'])) && ($_POST['adresse'] == "")) { ?> class="Input_erreur" <?php } ?> onfocus="this.className='';" value="<?php echo $_POST['adresse'] ; ?>"/>
</p>
<p class="double">
<label for="ville">Ville: </label>
<input type="text" name="ville" id="ville" <?php if ((isset($_POST['ville'])) && ($_POST['ville'] == "")) { ?> class="Input_erreur" <?php } ?> onfocus="this.className='';" value="<?php echo $_POST['ville'] ; ?>"/>
</p>
<p class="double">
<label for="telephone">Téléphone: </label>
<input type="text" name="telephone" id="telephone" <?php if ((isset($_POST['telephone'])) && ($_POST['telephone'] == "")) { ?> class="Input_erreur" <?php } ?> onfocus="this.className='';" value="<?php echo $_POST['telephone'] ; ?>"/>
</p>
<p class="double">
<label for="email">E.mail: </label>
<input name="email" type="text" id="email" <?php if ((isset($_POST['email'])) && ($_POST['email'] == "")) { ?> class="Input_erreur" <?php } ?> onfocus="this.className='';" value="<?php echo $_POST['email'] ; ?>"/>
</p>
<p class="double">
<label for="infos">Message: </label>
<textarea id="message" name="message" rows="5" cols="30" <?php if ((isset($_POST['message'])) && ($_POST['message'] == "")) { ?> class="Input_erreur" <?php } ?> onfocus="this.className='';"><?php echo $_POST['message'] ; ?></textarea>
</p>
<p class="simple">
<input type="submit" value="Envoyer ces informations" name="Envoyer" />
<input name="Réinitialiser" type="reset" value="Annuler" onclick="change_class();" />
</p>
</form>
<?php } ?>
<?php if($formulaire == "OK") { ?>
<div id="contact">Votre mail a bien été envoyé, merci.</div>
<?php } ?>
je garde cette page faute de temps mais je vais revenir dessus car je suis frustré d'abandonner...
merci pour tout a plus steeve.
Dernière modification par steeve (14-07-2011 12:45:29)
Hors ligne
un petit exemple pour ne pas envoyer un formulaire avec des champ vide
<STYLE type="txt/css">
.error {
font-size: 250%;
color: #f43a15;
}
</STYLE>
// exemple de formulaire
// tous les champs ayant la class requiered devront être rempli par l'utilisateur
// sinon, le formulaire ne sera pas envoyé
// un pti bonus, le dans le span suivant le champ, mettre le message d'erreur correspondant
<form id="monformulaire" action="xx.php" method="post">
Nom : <input type="text" name="nom" class="requiered"/> <span class="error">Champ obigatoire</span><br />
Prénom : <input type="text" name="prenom" class="requiered"/> <span class="error">Champ obigatoire</span><br />
<input type="submit" value="Envoyer" />
</form>
<script type="text/javascript">
$(document).ready(function() {
$('.error').hide();
$("#monformulaire").submit( function() {
var vide = false;
$('.requiered').each(function(){
if($(this).val().length ==0){
vide = true
$(this).next("span").show();
}else{
$(this).next("span").hide();
};
}) ;
return (vide==true) ? false : true;
});
});
</script>
Hors ligne
oulala, rien a vois avec ce que j'avais, je vais regarder ça...
merci beaucoup.
Hors ligne
pour plus d'explication, demander
a++
Hors ligne
Salut,
Alors, tu as regardé ?
Tu as adopté ?
a++
Hors ligne