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] envoyer une donnée avec jquery et recevoir avec php


Sujet :

AJAX

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [AJAX] envoyer une donnée avec jquery et recevoir avec php
    Bonojur;

    je suis nouveau dans ce forum, et dans la programmation javascript (bib jquery)
    commançant dans le vif du sujet :

    je souaite faire un petit menu qui va me permettre de basculer entre 4 langues pour un siteweb culturel bref, voici mon code :

    html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <a id="lang_fr" href="#"  >fr</a>
     <a id="lang_en" href="#"  >en</a>
     <a id="lang_de" href="#"  >de</a>
    <a id="lang_es" href="#"  >es</a>
    jquery :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $(document).ready(function() {
            var l="" ;
    		$("a").click(function (){ 
    			l = $(this).html(); 
    			alert(l);
    			$.post("jquery.php", {name: l});
    		});
    });
    php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $lang="";
    if (isset($_POST['name'])){
    $lang=$_POST['name'];
    echo $lang ;
    }
    l'alert m'affiche bien à chaque foi : fr, de, en ou es.
    mais la methode $.post n'envoi rien et je suis bloqué .
    peut étre mon raisonnement est faux je sais pas , j'ai googlé ici et la
    mais la plus part des solutions présents POST étaient pour un formulaire html avec la balise form ect ... mais moi je veux pas utiliser un formulaire.
    je peut faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a id="lang_fr" href="monfichier.php?lang=fr"  >fr</a>
    ensuite extraire le contenu du variable lang de l'URL seulement avec php sans jquery, cependant je veux que le passage soit transparent et sans passage de paramètres dans l'URL.

  2. #2
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    bonjour
    tu peux utiliser ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $(document).ready(function() {
            var l="" ;
    		$("a").click(function (){ 
    			l = $(this).html(); 
    			alert(l);
    			$.ajax({
      url: "jquery.php",
      type:"POST",
      data:{name,l},
      success: function(msg){  $("#id").html( msg );}
                           });
    		});
            });
    remplace #id par l'identifiant de l'élément que tu veux changer
    (marquer un post résolu si vous êtes satisfait de la réponse )
    ma page launchpad https://launchpad.net/~inizan-yannick
    ma page github : https://github.com/inizan-yannick

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    bonsoir,

    j'ai utilisé ton code rotrevrep et j'ai passé l'id comme tu ma indiqué mais ça n'a pas marché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $(document).ready(function() {
            var l="" ;
    	var id_="";
    		$("a").click(function (){ 
    			l = $(this).html(); 
    			id_=$(this).attr('id');
    			$.ajax({
      url: "jquery.php",
      type:"POST",
      data:{name,l},
      success: function(msg){  $(id_).html( msg );}
                           });
    		});
    });
    avez vous testez le code ?

  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 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Ton premier code était suffisant, le seul problème n'est pas
    mais la methode $.post n'envoi rien
    mais le fait que tu ne fais rien du résultat retourné par PHP.
    $.post() prend un 3e paramètre qui est une fonction de rappel permettant de traiter le résultat reçu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $.post("jquery.php", {name: l}, function(reponse){alert(reponse);});
    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
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    bonsoir,

    merci pour la correction du code, mais coté php il n'affiche pas toujours le résultat du post récupéré. j'ai modifié le code php pour vérifier voici tout le code :

    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
     
    <?php
    if (empty($_POST['name'])) {
            $return['error'] = true;
            $return['msg'] = 'You did not enter you language.';
    }
    else {
            $return['error'] = false;
            $return['msg'] = 'You\'ve entered: ' . $_POST['name'] . '.';
    }
     
    echo json_encode($return);
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <title>Post</title>
    <script type="text/javascript" src="jquery1.7.js"></script>
    <script language="javascript" type="text/javascript">
    var l="" ;
    var id_="";
    $(document).ready(function() {    
    		$("a").click(function (){ 
    			l = $(this).html(); 
    			id_=$(this).attr('id');
    			$.post("jquery.php", {name: l}, function(reponse){alert(reponse);});
    		});
    });
    </script>
    </head>
    <body>
    <br />
    	<a id="lang_fr" href="#">fr</a>
     
    	<a id="lang_en" href="#">en</a>
     
    	<a id="lang_de" href="#">de</a>
     
    	<a id="lang_es" href="#">es</a>
     
    </body>
    </html>
    après le clique ce message s'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"error":true,"msg":"You did not enter you language."}
    par contre le message affiché par la fonction de rappel affiche ceux ci :

    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
    {"error":false,"msg":"You've entered: fr."}<!DOCTYPE html>
    <html>
    <head>
    <title>Post</title>
    <script type="text/javascript" src="jquery1.7.js"></script>
    <script language="javascript" type="text/javascript">
    var l="" ;
    var id_="";
    $(document).ready(function() {    
    		$("a").click(function (){ 
    			l = $(this).html(); 
    			id_=$(this).attr('id');
    			alert(l);
    			//alert(id_);
    			//$.post("jquery.php", {name: lang})
    			$.post("jquery.php", {name: l}, function(reponse){alert(reponse);});
    		});
    });
    </script>
    </head>
    <body>
    	<a id="lang_fr" href="#">fr</a>
    	<a id="lang_en" href="#">en</a>
    	<a id="lang_de" href="#">de</a>
    	<a id="lang_es" href="#">es</a>
    </body>
    </html>
    j'arrive pas à comprendre pourquoi le serveur renvois deux résultats différants pour un seul traitment bizzare non ?

  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 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $.post("jquery.php", {'name': l}, function(reponse){alert(reponse);});
    Ceci dit, ta page est incorrecte : tu renvoies d'abord un objet JSON puis une page HTML complè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

Discussions similaires

  1. [AJAX] envoyer une valeur avec ajax
    Par ouldfella dans le forum AJAX
    Réponses: 1
    Dernier message: 17/10/2011, 15h41
  2. [AJAX] Envoyer une valeur par get avec AJAX
    Par beegees dans le forum AJAX
    Réponses: 1
    Dernier message: 21/03/2009, 12h57
  3. Afficher une donnée sur la page web avec une fonction javascript
    Par Djaiffe dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/01/2008, 00h05
  4. [AJAX] Envoyer une variable tableau à un script PHP
    Par AzertyH dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/02/2007, 16h58
  5. Réponses: 13
    Dernier message: 13/09/2006, 21h39

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