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] Formulaire et envoi de l'ID du formulaire


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Points : 12
    Points
    12
    Par défaut [AJAX] Formulaire et envoi de l'ID du formulaire
    Bonjour,

    J'ai cherche partout mais je ne trouve pas la réponse à un probleme que je rencontre...

    J'arrive sans problème à envoyer en POST les valeurs d'un formulaire via l'Ajax.

    Mais pour ce formulaire, j'ai absolument besoin de transférer l'ID du formulaire et la je ne trouve pas !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="contact" method="post" action="...">
    comment envoyer cet id "contact" via AJAX (sans jquery )

    merci beaucoup d'avance, ca fait quelques heure que je ma casse la tête avec ca

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 983
    Points : 44 180
    Points
    44 180
    Par défaut
    Bonsoir,
    J'arrive sans problème à envoyer en POST les valeurs d'un formulaire via l'Ajax.
    qu'est ce qui t'empêches de rajouter l'ID du formulaire à la liste de tes paramètres transmis?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Mais... c'est bien ce que je cherche a faire...
    Mais sous quelle forme ??

    l'id de la form n'est pas comme un id de input
    pour l'input id=valeur mais pour la form ??

    j'ai essayé a tout hasard "form=id mais bien sur ca rime a rien...

    j'ai besoin d'envoyer cet id car il y a plusieurs formulaire dans la page
    et le post-traitement gere l'id du form.

    note: je n'ai pas la main sur le script du post traitement...

    Sant ajax ca marche bien sur sans probleme, puisque cet id de form est par principe émis.

    en ajax ont gere soit même les datas par attribution de valeurs... la form en elle même visiblement ont s'en moque, alors que cela "peut" être une valeur.

    Mais comment (sous quelle forme) peut on preciser un id de form en ajax ?

  4. #4
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    J'arrive sans problème à envoyer en POST les valeurs d'un formulaire via l'Ajax.
    Soyons précis, c'est toi qui y arrive ou c'est le script que tu as récupéré, parce que ta phrase laisse penser que c'est toi, mais la réponse donnée à NoSmoking semble montrer le contraire et ça a une importance quant à la réponse à apporter...

    Sant ajax ca marche bien sur sans probleme, puisque cet id de form est par principe émis.
    Euh... non, pas vraiment, la soumission d'un formulaire ne transmet certainement pas les id et encore moins celui du formulaire... Seuls les valeurs des attributs name des champs du formulaire sont transmis !

    Sinon, sans ton code actuel, difficile de te répondre précisément.
    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

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Vous avez raison, je reformule le problème...
    (je debute sur ajax )

    Sur nos serveurs un login est validé par un script qui se trouve sur un autre serveur distant.

    j'ai actuellement une page formulaire classique sous la forme suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form id="formlogin" method="post" action="http://LeServeurDistant/script/">
          <input id="login" name="login" value=""/>
         <input type="password" id="password" value=""/>
         <input type="checkbox" id="sauver" value="1" checked/>
         <input type="submit" value="OK"/><br>
    </form>
    Ce code fonctionne sans problème. La page qui doit venir nous est correctement retournée..

    Je dois maintenant Passer ce formulaire en Ajax (pour diverses raison..)
    j'ai donc fait un test sans formulaire html, juste la partie Ajax et infos à passer en dur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    	var PageAction  = "http://LeServeurDistant/script/";    // Marche Pas !
            //var PageAction  = "http://MonServeurLocal/script/";   // Marche !
    	var UserLogin    = "user";
    	var UserPasswd = "test";
     
    		obj = document.getElementById("resultat");
    		ret = document.getElementById("content");
     
    		if (window.XMLHttpRequest)  
    		   xhr=new XMLHttpRequest();
    		else 
    		   xhr=new ActiveXObject("Microsoft.XMLHTTP");
     
    		xhr.onreadystatechange = function() { 
    			if(xhr.readyState == 1)
    				obj.innerHTML += "connexion établie<br />";
    			if(xhr.readyState == 2)
    				obj.innerHTML += "requête reçue<br />";
    			if(xhr.readyState == 3)
    				obj.innerHTML += "réponse en cours<br />";
    			if(xhr.readyState == 4) {
    				if(xhr.status == 200)
    					ret.innerHTML = xhr.responseText; 
    				else
    					obj.innerHTML += "Error code: " + xhr.status + "<br />"; 
    				}
    			} 
    		};
     
    		xhr.open("POST", PageAction , true);		
    		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    		xhr.send("login=" + UserLogin + "&password=" + UserPasswd +"&sauver=1");
    J'ai fait un essai en local sur nos serveurs, et je reçoit correctement les infos POST et j'arrive à retourner une page...
    j'en conclu que le code est correct...

    lorsque je met l'url distante:
    j'ai l'affichage de l'étape 1 mais pas les autres.
    par contre je tombe toujours sur "Erreur code:" avec xhr.status = 0
    Et donc aucun affichage de la page distante en retour...

    Je n'ai pas la main du tout sur le serveur distant, impossible de faire de logs ou voir le code en face... ils ne sont pas très collaboratif pour le coup

    Je me suis dis que la seule info que je ne transmet pas c'est l'id du formulaire...
    d'ou ma question initiale, mais c'est peut être autre chose...

    donc il doit manquer quelques chose... mais quoi ??

    Merci d'avance de votre aide..

  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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Tu ne peux pas faire de requête AJAX sur un serveur distant à moins d'utiliser la technique CORS...
    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 à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Tu ne peux pas faire de requête AJAX sur un serveur distant à moins d'utiliser la technique CORS...
    Hups !
    Merci ! Réponse simple mais claire...

    Reste donc a trouver une autre méthode

    Un des buts du passage à l'ajax était de pouvoir "retravailler" la page que nous recevons en retour par du javascript.

    Si vous avez une idée...

  8. #8
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Euh... ceci dit, j'ai peut-être pas forcément compris la même chose que toi dans la notion de serveur distant...
    Si ta page d'origine est elle-même hébergée sur ton "serveur distant", alors la requête est possible, sauf que le status renvoyé peut parfois ne pas être 200, essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(xhr.status == 200 || xhr.status == 0)
    Sinon, si ta page et la cible de la requête ne sont pas sur le même serveur, tu peux appeler un script serveur (PHP par exemple) qui servira à récupérer les infos du serveur distant puis à les renvoyer à ton script.
    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

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Euh... ceci dit, j'ai peut-être pas forcément compris la même chose que toi dans la notion de serveur distant...
    Si si, ta compréhension est la bonne, se sont deux serveurs distant et sur deux nom de domaine différent.

    Il faut que je repense la question, n'aillant pas la main ni la possibilité de faire quoi que ce soit sur le deuxième serveur.

    Doit je mettre "resolu" ? (sauf pour moi ) pour cloturer cette partie de la question initiale ?

  10. #10
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ton problème n'est pas impossible à résoudre, donc s'il ne l'est pas pour toi, inutile de marquer la discussion résolue

    As-tu essayé de faire un appel à un script serveur (PHP ?) pour récupérer le contenu distant, le parser (avec DOMDocument par exemple) et renvoyer le résultat souhaité ?
    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

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/02/2015, 17h21
  2. [PHP, AJAX via jQuery] Envoi d'un formulaire
    Par Gun.Man dans le forum Langage
    Réponses: 1
    Dernier message: 02/11/2012, 22h22
  3. Réponses: 1
    Dernier message: 23/10/2011, 22h39
  4. [AJAX] Envoi ou non d'un formulaire avec une fonction AJAX
    Par ohhh.gringo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/05/2007, 11h47
  5. [AJAX] AJAX et envoie de données d'un formulaire
    Par gunderam dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/06/2006, 18h17

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