|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité de passage
![]() Inscription : avril 2010 Messages : 35 ![]() |
Bonjour,
Voilà je suis en train de créer un portfolio en utilisant jQuery, et je bute sur un petit problème agaçant. En fait, j'ai plusieurs pages incluses à l'aide de jQuery (load), donc une page "formulaire de contact". Seulement, lors de la validation de ce formulaire, je ne trouve pas le moyen d'exécuter le code PHP tout en gardant la même page ou en affichant un message à la place de mon formulaire (ou au dessus, enfin bref, modifier uniquement la partie "contenu", et ne pas recharger la page, car sinon je reviens sur l'accueil, et je ne veux pas). Pour l'instant, je mets le code PHP dans index.php (les pages incluses dans index.php sont des pages html, comme contact.html), et donc la champ "action" de mon form pointe vers index.php... ça recharge donc la page. Pas ce que je veux, et en plus je n'arrive pas à afficher un message de confirmation du coup. Voici mon code : index.php Code :
Code :
Code :
Serait-ce à propose de $.post() ou $.ajax() ? Merci d'avance ! |
||||||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() sébastien courjeanInscription : novembre 2010 Messages : 204 ![]() |
Je te conseille plutôt ceci dans ton cas :
Petit tutorial en FR http://www.absurdsystem.com/form-validation-engine/ Documentation et exemple site officiel EN http://www.position-absolute.com/art...ion-is-a-mess/ |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : avril 2010 Messages : 35 ![]() |
Bonjour et merci pour ta réponse.
Malheureusement, il me semble que les liens donnés ne prennent pas encore compte le traitement PHP, si ? J'ai regardé plusieurs exemples de formulaires sur le web avec jQuery et à chaque fois il manquait le plus important, ou alors je me fourvoie. Merci d'avance; |
|
|
00
|
|
|
#4 | ||
|
Membre éclairé
![]() sébastien courjeanInscription : novembre 2010 Messages : 204 ![]() |
Code :
|
||
|
|
10
|
|
|
#5 |
|
Invité de passage
![]() Inscription : avril 2010 Messages : 35 ![]() |
Merci, je vais approfondir dans cette voie.
Je donne une réponse ce soir ou demain, je pense pouvoir m'y pencher à nouveau sérieusement demain après-midi edit: pour cette syntaxe: Code :
$.post("test.php", { name: "John", time: "2pm" } ); J'ai tenté ça hier, sans succès. Je passais mes paramètres entre les accolades. edit 2: Je viens de comprendre... Je pensais qu'il fallait absolument passer les variables en paramètre de quelque chose (peut-être avec la fonction $.post()) mais apparemment, pas sur la fonction dont tu me parles. Merci |
|
|
00
|
|
|
#6 | ||||||||
|
Invité de passage
![]() Inscription : avril 2010 Messages : 35 ![]() |
Bon ben je sèche...
Rien n'est envoyé, donc je ne me suis pas encore penché sur la partie "confirmation d'envoi" puisque je ne reçois rien pour l'instant... Je ne sais pas si mon code PHP est exécuté... Voici mon code: index.php Code :
Code :
Code :
Code :
J'ai bien inclus les librairies dans l'index.php, je ne pense pas avoir fait d'erreur dans mon formulaire sur contact.php... et sur affichage.js... je ne sais pas trop si ce que j'ai fait est bon, j'ai tenté de reproduire le code de l'exemple donné ci-dessus... sans vraiment tout comprendre de ce que j'écrivais. D'où le problème à mon avis. Merci d'avance ! Quelqu'un a une idée ? |
||||||||
|
|
00
|
|
|
#7 | ||
|
Membre éclairé
![]() sébastien courjeanInscription : novembre 2010 Messages : 204 ![]() |
Met ça dans ton fichier contact.php ou après
Code à bouger : Code :
|
||
|
|
00
|
|
|
#8 | ||||||
|
Membre Expert
![]() ![]() Emilie LefolEn recherche d'emploi Inscription : février 2009 Messages : 410 ![]() |
En fait, ce que tu cherches à faire, c'est envoyer ton formulaire sans recharger ta page ?
Si c'est ceci, voici un exemple de ce que j'utilise : Code html :
Code php :
Code javascript :
Il y a un début d'idée ! enfin... Je pense
__________________
![]() - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol) - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche) |
||||||
|
|
10
|
|
|
#9 |
|
Invité de passage
![]() Inscription : avril 2010 Messages : 35 ![]() |
Monsieur Scourjean... je vous aime !
Donc c'était bien mon code js qui n'était pas interprété. Donc j'ai forcément mal compris l'un des concepts de jQuery. Le but de ce portfolio, outre le fait de créer une "vitrine" en ligne de mes créations et mes compétences pour les professionnels, est aussi d'apprendre quelques techniques (toute expérience est bonne à prendre, je suis étudiant), c'est pourquoi j'ai utilisé jQuery pour le site et non de simples include() PHP. Donc je vous demanderai une dernière chose : pourquoi ? Pourquoi la position de ce code fait qu'il est interprété ? Comment jQuery gère-t-il ça ? D'ailleurs, c'est sûrement le même problème au niveau des slideUp et slideDown, j'avais dû imbriquer le code sans trop savoir pourquoi, sinon j'avais des bugs d'animation. Un grand merci en tout cas pour votre aide précieuse. Pour répondre à Atomya Rise, je vous remercie de votre réponse, c'est aussi ce que j'avais essayé au départ. Le code auraît sûrement marché aussi... si je l'avais placé au bon endroit ! Pour maintenant je vais rester sur cette solution, qui me permettra de gérer via AJAX les notifications d'erreur de remplissage du formulaire. Merci |
|
|
00
|
|
|
#10 |
|
Membre éclairé
![]() sébastien courjeanInscription : novembre 2010 Messages : 204 ![]() |
Pour explication :
A chaque fois que tu exécute une action sur un élément en jQuery il faut que celui-ci existe à la base ou du moins qu'il soit crée juste avant par une autre action. Par contre dans ce cas là justement il faut bien imbriquer et non pas séparer. |
|
|
00
|
|
|
#11 | ||
|
Invité de passage
![]() Inscription : avril 2010 Messages : 35 ![]() |
D'accord ! Merci pour l'explication.
Maintenant je m'attaque au fait que mes notifications du type "ce champ est requis" s'écrivent en dessous de mon site... pas pratique. Visiblement avec : promptPosition: "bottomRight" si je les veux en dessous de chaque champ, serrés à droite. Sauf que... ça fonctionne pas encore. edit: bon ben je pensais que la suite allait découler... mais non... Toujours le problème de positionnement, ils se placent complètement sous mon site. De plus, aucune notification comme quoi le formulaire est validé n'apparaît (pourtant le message est envoyé et tout est renseigné) Et surtout, la fonction que je marque dans devant "success :" n'est jamais appelée, alors que la même est appelée si placée devant "failure :" ! (bien entendu, dans les cas où le formulaire est rempli avec succès ou non). Pour finir, même si je tente de vider mon formulaire en plaçant la fonction dans "failure", au lieu de vider le formulaire, il recharge le site complètement... donc je me retrouve sur la page d'accueil. Code :
|
||
|
|
00
|
|
|
#12 | ||
|
Membre éclairé
![]() Loïc LaffontInscription : juin 2007 Messages : 495 ![]() |
Pour avoir utilisé le plugin il-y-a quelque temps je me rappel en avoir bavé pour lui faire afficher les retours aux bons endroits.
La raison est que le moteur attends du JSON pour les erreurs : Code :
Dsl Mais j'espère avoir apporté ma contribution à ton édifice.
__________________
En théorie tout devrait fonctionner... La France a un incroyable talent : Son retard en technologie informatique
|
||
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : avril 2010 Messages : 35 ![]() |
Mmmmh je vais voir de ce côté même si je ne suis pas certain d'avoir compris.
|
|
|
00
|
|
|
#14 |
|
Membre éclairé
![]() Loïc LaffontInscription : juin 2007 Messages : 495 ![]() |
Le principe de la validation est :
Lors de la vérification par le script tu as deux retours possibles. True, False. Dans le cas du False le script de vérification fournis l'ID de la cellule, le message d'erreur et la couleur du flag. (rouge ou vert) Ce qui implique que ton Script de vérification connais le nom de la cellule vérifiée, de plus cela implique également que chaque cellules vérifiées ont leurs propre script de vérification. Je ne fais pas le cas TRUE car généralement on affiche rien quand c'est OK, a part peut être pour un Login libre dans une fiche de création compte. Mais le principe est le même que false.
__________________
En théorie tout devrait fonctionner... La France a un incroyable talent : Son retard en technologie informatique
|
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : avril 2010 Messages : 35 ![]() |
Oui mais là on parle encore de traitement non ?
La vérifications est bien effective, seulement elle est affichée... en bas. C'est pas plutôt uniquement une histoire de css ou autre ? |
|
|
00
|
|
|
#16 | |
|
Membre éclairé
![]() Loïc LaffontInscription : juin 2007 Messages : 495 ![]() |
Citation:
Je pense qu'il s'agit de ton retour script de vérification qui n'est pas bon. Il ne doit pas retourner que un FALSE ou un TRUE, il doit dans le cas d'un echec (FALSE ) retourner du JSON comme je l'ai indiqué plus haut. Si tu es d'accord avec cette idée montre nous l'un de tes script de vérification
__________________
En théorie tout devrait fonctionner... La France a un incroyable talent : Son retard en technologie informatique
|
|
|
|
00
|
|
|
#17 |
|
Invité de passage
![]() Inscription : avril 2010 Messages : 35 ![]() |
En fait c'est pas que je ne suis pas d'accord, c'est que je débute un peu dans tous ces types de traitements...
J'avais en effet oublié validationEngine.jQuery.css. Je l'ai ajoutée mais rien n'a changé. Donc c'est je JSON retourné dans le cas "false" qui va permettre de connaître la position des champs et de placer correctement les notifications, c'est bien ça ? |
|
|
00
|
|
|
#18 | ||||
|
Invité de passage
![]() Inscription : avril 2010 Messages : 35 ![]() |
Bon ben j'ai compris.
C'est le code PHP retourné qui n'était pas correct et ne permettait pas de placer les blocs ni de valider la formulaire (bien que le code était exécuté (donc mail envoyé), le formulaire n'était pas considéré comme validé, car en effet c'est que le moteur attend en retour du JSON... Je n'en sais pas plus, j'ai plus ou moins compris le code, même si pour moi c'est encore un peu flou (la modification est plutôt simple, mais je ne sais pas ce qu'est du JSON déjà, donc là faut que je me documente Voici le code de la page envoi-mail.php modifié : Code php :
Il me reste maintenant à corriger un petit bug : Quand je change de page (via la méthode load de jQuery), si dans le formulaire de contact les notifications sont présentes, elles ne s'effacent pas. Bonne nuit Edit : J'ai réussi, il suffisait d'ajouter cette ligne : Code :
$(".formError").fadeOut(150,function(){ $(".formError").remove(); }) ; Ce qui donne : Code :
|
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com