IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Récupérer les éléments d'un formulaire envoyer en POST OU empecher jquery de traiter un formulaire


Sujet :

jQuery

  1. #1
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Points : 209
    Points
    209
    Par défaut Récupérer les éléments d'un formulaire envoyer en POST OU empecher jquery de traiter un formulaire
    Bonjour à tous,

    Mon titre n'est pas très claire je pense, mais voici la difficulté que je rencontre.

    Je travail sur un template incluant Jquery.
    Dans ma page j'ai un simple formulaire avec la méthode POST que je veux récupérer avec PHP.

    Quand je valide le formulaire, les valeurs envoyées n'arrivent pas à destination.

    Je me suis aperçu qu'au moment de valider le formulaire, Jquery "intercepte" et traite l'envoi lui même.
    Si je supprime le fichier "jquery.min.js" ça fonctionne mais la mise en forme saute et j'en ai également besoin pour d'autres éléments.

    Il n'y a pas d'ID ou de CLASS sur le formulaire, c'est vraiment le minimum (action et method). Jquery semble traiter directement l'élément "form".

    Ma question est donc la suivante :
    Comment indiquer à Jquery de laisser tranquille mes éléments postés?
    Ou sinon, comment puis-je récupérer mes données de l'autre côté? (sachant que je souhaite utiliser la condition "Si ma valeur est postée" (en php : if($_POST['variable']..etc)).

    Le mieux pour moi serait tout de même qu'il laisse tranquille mes formulaires.

    Le fichier "jquery.min.js" est évidement "compacté", du coup pour chercher des éléments de réponses c'est impossible pour moi, sauf si j'ai au préalable des pistes de recherches.

    Merci par avance pour votre aide.

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 844
    Points
    4 844
    Par défaut
    Bonjour,

    Comment sais-tu que jQuery empêche l'envoie du formulaire ? un message dans la console ? une information ?

    Sans code et explications, je ne pense pas que l'on puisse t'aider pour résoudre le problème.

  3. #3
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Points : 209
    Points
    209
    Par défaut
    Je n'ai pas dis que jquery bloquait le formulaire, mais il le traite lui même et du coup je ne peux pas récupérer les valeurs via php.
    Quand je supprime le fichier jquery le formulaire se comporte normalement, si je le remet, non.

    La console me confirme que le post est envoyé via XHR depuis le fichier jquery.min.js

    Je n'ai pas de code à vous montrer car je ne sais pas quelle partie du code vous montrer. Le fichier contient 50 000 ligne compact, sans espace, un cauchemar pour les yeux.

    La console
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    URL de la requête :######.php
    Méthode de la requête :POST
    Adresse distante :#######
    Code d’état :
    200
    Si je demande à la console de m'afficher la ligne de code responsable de l'envoi, il me montre bien la 4eme ligne, mais comme il m'affiche au préalable le contenu du fichier jquery sur 4 lignes, cette dernière peu très facilement relier Bordeaux > Paris tellement elle est longue (certainement avec escale à Montréal).


    S'il y avait des fonctions ou nom d'éléments que je pourrais utilisez en faisant une recherche (ctrl+F)...

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 844
    Points
    4 844
    Par défaut
    à mon avis, ce n'est pas jquery.min.js qui pose problème, c'est plutôt un autre script js (main.js ou autre...) qui attache un événement submit à ton <form>.

    Il va falloir trouver la fonction qui affiche le console.log (pas dans jquery.min.js mais dans les autres fichiers js importés dans ta page) que tu viens de montrer.

    Pour faciliter la recherche, ouvre le fichier js dans lequel tu veux faire la recherche, puis CTRL+F, la zone de recherche de l'éditeur s'affiche, écris "submit" ou bien une phrase du retour console comme "Méthode de la requête" par exemple puis entrer.

  5. #5
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Points : 209
    Points
    209
    Par défaut
    J'ai, avant tout supprimé tous les fichiers javascript de ma page test pour mieux cibler le coupable (simple html).
    Il restait uniquement jquery.min.js et jquery.mobile.min.js

    Dans jquery.mobile.min.js (qui ressemble également à du vomie de kellogg's dans un bol de chocolat chaud), j'ai cherché "Submit" et j'ai trouvé plusieurs résultats.
    Cependant, l'un d'entre eux ma interpellé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a.mobile.document.delegate("form","submit",function(b){var d;b.isDefaultPrevented()||(d=c(a(this)),d&&...
    J'ai fait le goré en ajoutant un suffix à "submit" pour que la ligne soit foireuse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a.mobile.document.delegate("form","submit_wh",function(b){var d;b.isDefaultPrevented()||(d=c(a(this)),d&&...
    Et bingo! je réceptionne maintenant correctement mes posts avec PHP
    J’espère, par contre que ca ne va pas foirer les événements écrits après cette ligne.

    Merci pour ton aide, je vais me contenter de ce bidouillage pour continuer à avancer.

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 844
    Points
    4 844
    Par défaut
    , mais je ne sais pas pourquoi ils ont mis cet événement dans jQuery.mobile.min.js , normalement ce fichier ne doit contenir que les méthodes propres de jQuery mais pas d'événement, à moins que c'est parce que c'est une template ...

    Tu peux commenter cette fonction avec slach étoile /* la fonction ici ....*/

    Ne t'inquiète pas pour le fonctionnement de tes pages, mais sache que tous les <form> n'auront aucun événement attaché "submit" en jQuery.

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    Citation Envoyé par Seta-san
    Dans jquery.mobile.min.js (qui ressemble également à du vomie de kellogg's dans un bol de chocolat chaud)
    ce n'est que le fichier minifier de jQuery Mobile, par exemple.

    Il te suffit de supprimer .min du nom de fichier, jquery.mobile.min.js devient jquery.mobile.js, pour avoir accès à la « version longue ».

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Récupérer les données d'un formulaire envoyé par email
    Par renaud26 dans le forum Langage
    Réponses: 19
    Dernier message: 28/04/2014, 12h05
  2. Réponses: 1
    Dernier message: 18/12/2006, 10h20
  3. Comment récupérer les éléments d'un getComments
    Par AlexandraS dans le forum Langage
    Réponses: 6
    Dernier message: 31/05/2006, 11h21
  4. Réponses: 5
    Dernier message: 22/02/2006, 17h32
  5. Comment récupérer les éléments d'un autre programme ?
    Par Henri_13 dans le forum API, COM et SDKs
    Réponses: 22
    Dernier message: 29/11/2005, 00h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo