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] Réception des données avec POST


Sujet :

AJAX

  1. #1
    Inscrit
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 151
    Points
    151
    Par défaut [AJAX] Réception des données avec POST
    Bonjour,

    J’utilise ce petit script pour envoyer des données à ma base mysql.

    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
     
    <script type="text/javascript" charset="ISO-8859-1">
    img = document.getElementById("resultat");
    if(window.XMLHttpRequest) 
    xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) 
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else
    return(false);
    nocache = Math.random();
    var data1 = 'exemple_15000_caracteres';
    xhr_object.open('POST', 'teste_load.php?data1=' + data1, true);
    xhr_object.send(null);
    res = ""+xhr_object.responseText;
    img.innerHTML += res;
    img = "";
    </script>
    Quand j’utilise GET cela fonctionne avec des données minime, mais quand les données sont un peut lourd, j’ai une erreur
    Request-URI Too Large

    Donc j’essaye d’utilisé POST a la place de GET, le problème est que je ne reçois pas les données sur ma page PHP.

    Avez-vous une idée SVP.

    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 115
    Points : 125
    Points
    125
    Par défaut
    Lorsque tu envoies des données par POST, tu dois donner un entête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xmlhttp.open("POST","ajax_test.asp",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("fname=Henry&lname=Ford");

  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 : 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 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Surtout, comme l'a corrigé Michaeljackfan mais sans le détailler, les paramètres doivent être passés via la méthode send() et non dans l'URL (sinon, ça sert à rien de faire du 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

  4. #4
    Inscrit
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 151
    Points
    151
    Par défaut
    Merci pour vos réponses

    Mais impossible de déclarer xmlhttp.

    Car j’ai une erreur xmlhttp is not defined

  5. #5
    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 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Regarde peut-être ton code...
    Toi tu as xhr_object...
    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

  6. #6
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 385
    Points : 3 527
    Points
    3 527
    Billets dans le blog
    1
    Par défaut
    Mais pourquoi faire du XMLHttpRequest à la main en 2012

    jQuery
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  7. #7
    Inscrit
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 151
    Points
    151
    Par défaut
    Merci pour la suggestion, maintenant je dois comprendre donc je fais des recherches (c’est en cours).

    Mais j’ai une question:
    Pour quoi choisir du jQuery ?

  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 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Golgotha
    Mais pourquoi faire du XMLHttpRequest à la main en 2012
    Ben... parce qu'en 2012, avec IE6 à moins de 0.5% de parts de marché, AJAX c'est aussi simple que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var xhr = new XMLHttpRequest();
    et qu'utiliser jQuery uniquement pour se simplifier cette syntaxe, c'est aberrant !

    Ensuite, il peut exister d'autres raisons d'utiliser jQuery et donc de s'en servir pour traiter AJAX, mais traiter AJAX n'est pas une raison suffisante pour utiliser un framework.
    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 expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 385
    Points : 3 527
    Points
    3 527
    Billets dans le blog
    1
    Par défaut
    Personnellement, même un document.getElementById justifie pleinement jQuery.

    Enfin bref. Illustration.

    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
    <script type="text/javascript">
    function exemple()
    {
    obj = document.getElementById("resultat");
     
    obj.innerHTML = "Avant la requete : OK<br />";
    if(window.XMLHttpRequest) // FIREFOX
    xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // IE
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else
    return(false);
     
    xhr_object.open("GET", "/misc/ajax_test.php", false);
    xhr_object.send(null);
     
    obj.innerHTML += "Apres la requete : OK<br />";
     
    res = "Contenu du fichier : "+ xhr_object.responseText;
    obj.innerHTML += res;
     
    }
    </script>
    <a href="javascript:exemple()"
    ou :

    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
    <script type="text/javascript">
    function exemple()
    {
     
    var obj = $("#resultat");
     
    obj.html("Avant la requete : OK <br/>");
     
    $.get("/misc/ajax_test.php", function(data){
     
    	obj.html("Apres la requete : OK <br />");
     
    	res = "Contenu du fichier : " + data;
    	obj.append(res);
    });
     
     
    }
    </script>
    <a href="javascript:exemple()">Hop, on essaye !</a>
    <div id="resultat"></div>
    c'est tout vu
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  10. #10
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par Golgotha Voir le message
    Personnellement, même un document.getElementById justifie pleinement jQuery.
    Une fonction javascript est composé de plusieurs instructions, mais l'utilisation de jQuery pour quelques fonctionnalités basique est abusif.

  11. #11
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 385
    Points : 3 527
    Points
    3 527
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Une fonction javascript est composé de plusieurs instructions, mais l'utilisation de jQuery pour quelques fonctionnalités basique est abusif.
    Je ne comprends pas pourquoi on utilise le mot abusif.. en quoi est ce abusif de vouloir écrire d'un certaine façon son code plutôt qu'une autre.

    Nombre de langage s'appuient sur des bibliothèques en C, donc on pourrait dire pareil finalement, quand on fait un petit programme en python, il est abusif d'utiliser python, autant écrire en C. Je vois plus jQuery comme un langage de plus haut niveau (même si ce n'est pas le cas) qui me permet d'écrire de façon plus claire et plus simplement.

    Si l'abus viens de l'import de la lib, ça ne me parait pas assez peser dans la balance, à l'heure ou en visionne une video en HD en temps réèl sur YouTube.
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  12. #12
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Ben là tu compares un langage de haut niveau avec celui du bas niveau sur lequel on l'a développé. Ici c'est le même langage mais seulement natif vs framework.
    J'ai parlé d'abus parce que si ce n'est que pour l'utilisation de l'ajax et les instruction comme getElementById, c'est comme disait un membre
    C'est sortir un cuirassé pour tuer une mouche.

  13. #13
    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 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Si l'abus viens de l'import de la lib, ça ne me parait pas assez peser dans la balance
    Ca me rappelle mon ancien patron qui pour envoyer un mail d'une ligne, créait un document Word...
    Du coup, on recevait un message sans titre contenant uniquement un document "Document sans nom.doc" qui contenait juste une ligne de texte...

    Mais bon, on arrivait quand même à les lire...
    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

  14. #14
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 385
    Points : 3 527
    Points
    3 527
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Ca me rappelle mon ancien patron qui pour envoyer un mail d'une ligne, créait un document Word...
    Du coup, on recevait un message sans titre contenant uniquement un document "Document sans nom.doc" qui contenait juste une ligne de texte...

    Mais bon, on arrivait quand même à les lire...
    Maintenant je serais comment formuler mes mails
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Golgotha Voir le message
    Mais pourquoi faire du XMLHttpRequest à la main en 2012
    jQuery
    Moi avec mon métier c'est encore a la main, ce n'est pas une question de 2012 ou pas, c'est une question que ces outils qui ralentissent la procédure
    (je parle des xxx.js) ont l'énorme avantage de simplifier la tâche des petits programmeurs.

    Bref chacun son choix ...

    A++
    Christele

  16. #16
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 385
    Points : 3 527
    Points
    3 527
    Billets dans le blog
    1
    Par défaut
    Moi avec mon métier c'est encore a la main, ce n'est pas une question de 2012 ou pas, c'est une question que ces outils qui ralentissent la procédure
    (je parle des xxx.js) ont l'énorme avantage de simplifier la tâche des petits programmeurs.
    Je suis démasqué... j'utilise jQuery parce-que le javascript est bien trop complexe pour moi
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  17. #17
    Inscrit
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 151
    Points
    151
    Par défaut
    Voila j’ai fait mon petit script.
    J' l'affiche ici si des suggestions.

    Merci a vous tous

    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
     
     
    	function exemple()
    	{
    		if(sql_data_send.length > 6000)
    		{
    				jQuery.ajax(
    				{
    						type: 'POST',
    						url: 'teste_db.php',
    					data: 
    					{
    						sql_data_send: sql_data_send,
    						id_id: id1,
    						admin: true
    					}, 
    					success: function(data, textStatus, jqXHR) 
    					{
    						if (NB_produits == table.getCount())
    						{
    							document.getElementById('count_produit_send').innerHTML = 'Fini';
    						}
    						else
    						{
    							document.getElementById('count_produit_send').innerHTML = id1+' / '+data+'  N°: '+NB_produits+' / '+table.getCount();
    						}
    					},
    					error: function(jqXHR, textStatus, errorThrown) 
    					{
    					}
    				});
    		}
    		else
    		{
    		 img_now = document.getElementById("count_produit_send").innerHTML;
    		if(document.getElementById("count_produit_send").innerHTML == null){
    			img_now = "---";
    		}
    			img_now = "Avant la requete : OK<br />";
    			if(window.XMLHttpRequest) 
    			xhr_Sql = new XMLHttpRequest();
    			else if(window.ActiveXObject) 
    			xhr_Sql = new ActiveXObject("Microsoft.XMLHTTP");
    			else
    			return(false);
    			nocache = Math.random();
    			var img_url = obj.getCellText(10, row);
    			var img_cat1 = ID_cat1;
    			var img_cat2 = ID_cat2;
    			var img_cat3 = ID_cat3;
    			var id_id = id1;
    			var uri_img = 'teste_db.php?sql_data_send='+sql_data_send+'&id_id='+id_id;
    			xhr_Sql.open('GET', encodeURI(uri_img), false);
    			xhr_Sql.send(null);
    			sql_data_send = "";
    			res = ""+xhr_Sql.responseText;
    						if (NB_produits == table.getCount())
    						{
    							document.getElementById('count_produit_send').innerHTML = 'Fini';
    						}
    						else
    						{
    							document.getElementById('count_produit_send').innerHTML = id1+' / '+data+'  N°: '+NB_produits+' / '+table.getCount();
    						}
    			img_now.innerHTML += res;
    			img_now = "";
    		}
     	}

  18. #18
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Tu utilises déjà jQuery, pourquoi utiliser encore XMLHttpRequest?
    img_now.innerHTML += res;
    un objet string n'a pas d'attribut innerHTML.

    A+.

  19. #19
    Inscrit
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 151
    Points
    151
    Par défaut
    Salut,

    Le problème avec Jquery et que je ne reçois pas la réponse de la page php.
    Il me dit que tous les articles en été envoyer alors quand j’actualise la base de donné directement dans phpmyadmin, je vois que les articles arrive doucement.
    Alors qu’avec le vieux script je vois en temps réel (le prochain article n’est pas envoyer tant que précédent n’a pas été injecter).


    Code php : 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
    if(isset($_POST['sql_data']))
    {
    $sql_data = $_POST['sql_data'];
    $mysqli = new mysqli(_DB_SERVER_, _DB_USER_, _DB_PASSWD_, _DB_NAME_);
    	if (get_magic_quotes_gpc()) $sql_data = stripslashes($sql_data);
    if (mysqli_connect_errno()) {
    	//printf("Connect failed: %s\n", mysqli_connect_error());
    	exit();
    }
    $mysqli->multi_query("SET NAMES UTF8");
    $query  = $sql_data;
    if ($mysqli->multi_query($query)) {
    	do {
    		if ($result = $mysqli->store_result()) {
    			while ($row = $result->fetch_row()) {
    				//printf("%s\n", $row[0]);
    			//	printf("%s\n", $row[0]);
    			//	echo "<div id='count_produit_send'></div>";
    			}
    			$result->free();
    		}
    		if ($mysqli->more_results()) {
    		//	printf("<div id=\'count_produit_send\'></div>\n");
    		}
    	} while ($mysqli->next_result());
    }
    $sql_data = "	envoyer ok";
    //	$mysqli->close();
    }

Discussions similaires

  1. [AJAX] récupérer des données avec post
    Par nana_md dans le forum jQuery
    Réponses: 5
    Dernier message: 07/08/2013, 13h26
  2. [AJAX] Récupérer des données avec json
    Par Rony Rauzduel dans le forum AJAX
    Réponses: 4
    Dernier message: 15/10/2012, 17h37
  3. Réponses: 6
    Dernier message: 06/09/2009, 14h18
  4. [Réseau] Poster des données avec POST
    Par nico33307 dans le forum Langage
    Réponses: 2
    Dernier message: 08/08/2007, 16h18
  5. [AJAX] Passer des données avec caracteres speciaux
    Par linar009 dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 10/01/2007, 11h42

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