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] faire passer un objet collection


Sujet :

AJAX

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Par défaut [AJAX] faire passer un objet collection
    Bonjour,

    J'essaye d'envoyer un [object HTMLCollection] c'est a dire un <input hidden> qui est une sorte de tableau, (contient plusieurs élements), à travers le javascript vers la page php. Mais ça ne marche pas. Comment faire pour envoyer une collection en Ajax ?

    j'ai comme erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SyntaxError: invalid regular expression flag h
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    echo" <input type=\"hidden\" name=\"mon_input[]\"   value=\"".$id4."\">";
     
    -------------------------
    javascript :
     
     function majsfonction(){ // fonction qui récupère les persones en ligne
     
     
    var input = document.getElementsByName("mon_input");
     
     
     var xhr_url = 'mapage.php';// nom de la page
     
     /*Avec variables qui remplacent les variables de session */
    var data = 'input='+input; // donneé a envoyer à la page
     
     
     
     var getInfo = true; // donnée retourné ?
     
     var toMake = "infos"; // execution apres retour de donnée
     sendGetRequestNoEval(xhr_url,data,getInfo,toMake) // appel de la page avec les parametre ci haut
     
     
     };
     
     function sendGetRequestNoEval(xhr_url,data,getInfo,toMake){ // function utilisant XMLHttpRequest pour lire des page en format PHP qui g`re les requete ds la BD
     
    /*Sid = id de la session à transmettre à la page php*/
    //var sid = document.getElementById('sid').value;
     
     var xhr_object = null; // declarationde la variable
     	if(window.XMLHttpRequest){ // Firefox
    	 xhr_object = new XMLHttpRequest(); // declaration de lobjet
    	 }else if(window.ActiveXObject){ // Internet Explorer
    	 xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); // declaration de lobjet
    	 }else { // XMLHttpRequest non supporté par le navigateur
    	 alert("Your browser does'nt use XMLHTTPRequest objects...");
    	 return;
    	 }
     
     
     
     
    	/*http://www.lesite.com/savoir/xmlhttprequest.php3*/
    	/*POST*/
    	  xhr_object.open("POST", xhr_url, true); 
    	 if(getInfo != false){ // if retour d'info attendu	     
    		   xhr_object.onreadystatechange = function() { 
    		      if(xhr_object.readyState == 4){ 
    			 var infos = xhr_object.responseText // affectation du retour de donnée a infos
    				 if(toMake != ''){ // execute le javascrip contenu dans la variable toMake
     
     
    					toMake=infos;
    					//Si toMake=infos; est une expression javascript eval(toMake); marchera vérifié l'expression
    					// javascript, pas de HTML <table>
    					eval(toMake);
    					//eval(infos);
     
    				}//fin if(toMake != '')
    			}//fin if(xhr_object.readyState == 4){  
    		   }//fin xhr_object.onreadystatechange = function()  
    	}//fin if(getInfo != false)	 
    		   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     
    		  xhr_object.withCredentials = true; /* Avec « true », l'envoi des cookies et des sessions est bien effectué*/
     
    		   xhr_object.send(data); 
     
     };
     
    -----------------
    page php
     
    mapage.php
     
    $input = $_POST['input'];

  2. #2
    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
    Il faudrait déjà que HTTP puisse transporter des données typées...
    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

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Par défaut
    j'ai comme erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SyntaxError: invalid regular expression flag h
    est-ce qu'il faut faire une boucle for
    pour avoir les clef et le valeurs sur une seule ligne dans le data. Ce qui peut être long si on a plusieurs <input hidden> à envoyer ?

    --------------------------

    C'est bon j'ai trouvé voir ma question
    FormData(form); et xhr.responseText;

    ça marche avec FormData(form);

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

Discussions similaires

  1. [AJAX] Faire passer une variable AJAX dans autre chose qu'un <div></div>
    Par fixbraun dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/02/2009, 14h34
  2. [AJAX] Faire passer $_Files en parametre Ajax
    Par speed034 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/08/2008, 16h09
  3. Faire passer un objet d'une action a une autre
    Par piotrr dans le forum Struts 2
    Réponses: 24
    Dernier message: 26/05/2008, 17h50
  4. Réponses: 7
    Dernier message: 14/05/2008, 21h50
  5. [AJAX] Faire passer une variable $_FILE par AJAX
    Par Mazike dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/03/2007, 12h22

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