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

AJAX Discussion :

[AJAX] XMLHttpRequest et envoi formulaire


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    Avril 2004
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Par défaut [AJAX] XMLHttpRequest et envoi formulaire
    Bonjour,

    J'essaye (en vain) de faire fonctionner quelque chose qui peut être ne peut pas marcher (si j'en crois les non résultats de mes recherches !!):

    Peut on envoyer un formulaire entier par l'objet XMLHttpRequest ??? (sans envoyer séparément chaque valeur type a=john&b=doe...)

    Mon besoin :
    J'ai un formulaire qui contient différents champs dont un object CMS. Plutôt que d'enregistrer la page en postant le formulaire de manière classique, j'aimerai le poster via ajax, ce qui me permettrait de ne pas avoir a rechargé mon objet mais uniquement son contenu.

    Est ce possible ? y a t-il une autre manière ?

    J'ai regardé l'option FormData (qui ne marche d'ailleurs pas chez moi et je ne sais pas pourquoi...) et j'aimerai éviter le jquery, si possible.

    Si vous pouvez éclairer ma lanterne, je vous en remercie.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    Peut on envoyer un formulaire entier par l'objet XMLHttpRequest ??? (sans envoyer séparément chaque valeur type a=john&b=doe...)
    j'ai du mal à comprendre ce que tu essaies de faire.

    Tu peux toujours envoyer le contenu d'une FORM en récupérant son innerHTML seulement tu ne récupéreras pas de la sorte les value en cours dans ton formulaire, tu récupéreras l'original ce qui somme toute ne présente pas grand intérêt.

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    qui ne marche d'ailleurs pas chez moi et je ne sais pas pourquoi...
    Au hasard : parce que tu l'as mal utilisé ?

    Sinon, ben non, tu n'auras pas le choix : si tu veux envoyer ton formulaire via AJAX, quelle que soit la méthode pour le faire, tu seras bien obligé in fine d'envoyer en GET ou en POST des couples nom/valeur...
    Un peu comme quand on envoie un formulaire en fait !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre expérimenté
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    Avril 2004
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Par défaut
    Au hasard : parce que tu l'as mal utilisé ?
    Oui c'est possible, je ne dis pas le contraire, c'est un objet que je ne connais pas, mais il n'est pas reconnu chez moi quand je l'implémente. Il travaille avec jquery ou une autre library ??

    Evidemment il faudra que j'utilise un get/post, mais plutôt que d'envoyer par variable, j'aurai préférré pouvoir envoyer toute la form et utiliser les request pour traiter les données.
    Si je fais par couple objet/valeur, dans le cas d'un cms, je vais me retrouver avec une qté non négligeable de données à fair passer en variable du navigateur... imagine le contenu d'une newsletter par exemple... sans compter les incontournables problèmes d'encodage et de balise...
    J'en ai mal à la tête rien que d'y penser...

    Bref, l'idée était juste de savoir si l'xml autorisait un envoi de formulaire complet comme le post classique. A priori donc non...

    Tu peux toujours envoyer le contenu d'une FORM en récupérant son innerHTML seulement tu ne récupéreras pas de la sorte les value en cours dans ton formulaire, tu récupéreras l'original ce qui somme toute ne présente pas grand intérêt.
    Oui or ce qui m'intéresse c'est bien de récupérer les objets et leurs valeurs.


    Finalement, j'ai controurné le pb en envoyant mon formulaire dans un iframe target, enregistré tout ça et rechargé le contenu en xml. Ca marche, mais s'il est possible de ne pas utiliser l'iframe, je reste preneur.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par eclisse Voir le message
    Oui c'est possible, je ne dis pas le contraire, c'est un objet que je ne connais pas, mais il n'est pas reconnu chez moi quand je l'implémente. Il travaille avec jquery ou une autre library ??
    Non. C'est quoi ton code -_-° ?

    Citation Envoyé par eclisse Voir le message
    Bref, l'idée était juste de savoir si l'xml autorisait un envoi de formulaire complet comme le post classique.
    Oui, mais pour IE il faut la version 10.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    j'aurai préférré pouvoir envoyer toute la form et utiliser les request pour traiter les données
    Ben... c'est pas ce que fait un formulaire par défaut ?

    Si je fais par couple objet/valeur, dans le cas d'un cms, je vais me retrouver avec une qté non négligeable de données à fair passer en variable du navigateur...
    Certes, mais si tu as beaucoup de données dans ton formulaire, je ne vois pas par quel miracle il serait possible de les transmettre au serveur sans les passer dans la requête...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre chevronné
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Rien n'empêche d'envoyer un objet json ou un array.

    ++

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Rien ne l'empêche, non, mais enfin c'est ridiculement compliqué devant le besoin, et moyen niveau efficacité.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Si, il y a quand même des choses qui empêchent d'envoyer un objet JSON ou un tableau :
    • HTTP est un protocole sans état ;
    • les objets et les tableaux ne sont pas représentés de la même façon en PHP et en JavaScript.


    La seule chose possible à envoyer, c'est du texte. Et comme le souligne thelvin, que ce texte représente des paramètres GET ou POST ou des sérialisations d'objet ou de tableau ne change pas grand chose si ce n'est que le plus logique et le plus simple, c'est qu'une requête GET ou POST envoie des paramètres GET ou POST.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre chevronné
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Août 2010
    Messages
    287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Data Solutions
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 287
    Billets dans le blog
    4
    Par défaut
    Bonjour,





    Si, il y a quand même des choses qui empêchent d'envoyer un objet JSON ou un tableau :
    • HTTP est un protocole sans état ;
    • les objets et les tableaux ne sont pas représentés de la même façon en PHP et en JavaScript.
    En ce qui concerne votre remarque sur HTTP, elle est sans intérêt dans le contexte ennoncé.
    Pour le reste, L'objet JSON envoyé à PHP sera transformé après un json_decode() côté PHP en objet StdClass, donc aucun problème particulier dans le traitement à ce niveau, sauf si vous êtes en procédural et que vous ne savez pas développer en OO, et pour le tableau il reste en tableau côté php mais en tableau associatif, donc rien de compliqué également. Il n'y a que des avantages car un objet = 1 paramètre au lieu de 50 qui nécessiteraient beaucoup plus de code de traitement.

    ++

    EDIT: Et question efficacité, je ne connais pas plus efficace et simple. Mes recommendations quant au choix de l'un ou l'autre se situe de savoir quel est le niveau de compatibilité descendante au niveau navigateur que vous devez assurer. Si l'application doit être compatible IE8 et inférieur, alors choisissez les tableaux, sinon JSON sans hésitation.

Discussions similaires

  1. [AJAX] XMLHttpRequest et intégration de la reponse dans un formulaire
    Par gussoner dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 23/07/2008, 00h10
  2. [AJAX] XMLhttpRequest et formulaire
    Par Khleo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/03/2008, 12h56
  3. [AJAX] XMLHttpRequest et envoi POST
    Par woodyfrance dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 28/02/2008, 15h52
  4. [ajax] XMLHttpRequest et formulaire(<input type='file'>)
    Par Are-no dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/08/2006, 20h22
  5. [AJAX] envoi Formulaire
    Par thunderfear dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/07/2006, 11h56

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