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] fonction ajax


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 26
    Par défaut [AJAX] fonction ajax
    Bonjour à tous ! j'ai un petit problème avec une de mes fonctions ajax

    Je souhaite générer un tableau grâce à un code php à partir d'une requête sql et mettre sur le coté des + et des - qui afficheront masqueront certains détails du tableau.

    Pour le moment lorsque je clique sur les boutons + ou - sa ne change rien mon tableau.

    Je me demande si mon problème est dans ma fonction qui est la suivante :

    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
    function afficher(co,cha,de)
    { 	var obj;
    	if (navigator.appName.search("Microsoft") > - 1)
    	{	obj = new ActiveXObject ("MSXML2.XMLHTTP");
    	}
    	else
    	{	obj= new XMLHttpRequest();
    	}
    	obj.open('POST',co,true);
    	obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	obj.onreadystatechange = function()
    	{ 	if (obj.readyState == 4 && obj.status == 200)
    		{ 	document.getElementById(de).innerHTML = obj.responseText;
     
    		}
    	};
    	obj.send(cha);
    	return(false);
    }
     
    function afficherD(Date,Code)
    {	var ch;
    	ch="date="+Date+"&code="+Code;
    	afficher("det.php",ch,"detail");
    }
    ou dans ma façon de l'utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print '<td><input type="button" value="+" OnClick=\"afficherD(" . $val["DATE"] . , . $val["CODE"] .");\"></td>';
    Je vous remercie d'avance pour l'aide que vous allez j'espère m'apporter .

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    pourrait-on voir le code HTML généré de ton <td> contenant le bouton ?
    Je soupçonne un problème de quottes

    A+

  3. #3
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 26
    Par défaut
    je ne suis pas une experte dans le vocabulaire informatique et pour moi le code html de mon td ou il y a le bouton c'est celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print '<td><input type="button" value="+" OnClick=\"afficherD(" . $val["DATE"] . , . $val["CODE"] .");\"></td>';
    Ce n'est pas sa?

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Ce n'est pas exactement ça.
    Ce que tu montres ici est du code qui s'exécute sur le serveur (PHP).
    Ce code n'est pas un code HTML mais un code PHP qui génère ton code HTML.
    C'est ce code HTML qui sera interprété par le navigateur et c'est lui qui nous intéresse (sur ce forum, on ne traite pas des problèmes PHP).

    Pour récupérer le code HTML généré, affiche ta page dans ton nav, puis fais un clic droit + "Afficher le code source de la page" (ou terme équivalent suivant le nav).
    Dans ce code source, tu n'as plus qu'à repérer ce <td> avec le bouton et en faire un copié/collé ici.

    A+

  5. #5
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 26
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><input type="button" value="+" OnClick=\"afficherD(".$val["DATE"].,.$val["CODE"].");\">

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut


    Si tu as vraiment récupéré ça à partir du navigateur, il y a plus de problèmes que ce que je pensais

    D'une part, comme prévu, il faut enlever les anti-slash (\) au niveau du onclick.
    D'autre part il faut revoir ta syntaxe PHP puisque certaines variables ne sont pas interprétées sur le serveur et se retrouvent dans le code HTML/Javascript (et donc, forcément, les valeurs passées à la fonction Javascript n'ont aucun sens)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .$val["DATE"].,.$val["CODE"].
    A+

  7. #7
    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
    Citation Envoyé par E.Bzz Voir le message
    Si tu as vraiment récupéré ça à partir du navigateur, il y a plus de problèmes que ce que je pensais
    Je pense surtout qu'elle s'est contentée de recopier le code PHP en supprimant juste l'instruction print

    Ceci dit, il semble que tu appelles ta fonction avec seulement deux paramètres, alors qu'elle en attend trois. Du coup, c'est sûr que ça marche moins bien quand la fonction tente d'utiliser le 3e paramètre.
    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

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Je pense surtout qu'elle s'est contentée de recopier le code PHP en supprimant juste l'instruction print
    +1

    .... ce qui ne nous donne aucune info supplémentaire

    A+

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    ( Bovino la fonction n'as que deux paramétres, c'est par contre cette fonction qui passe trois paramétres a l'appel AJAX)

    Nous voila par definition dans de l'AJAX pur
    un html (extrait minimum et comme indiqué par tous plein de fautes de syntaxe.)
    Ce html appel lorsque tu clic sur le bouton "+" un javascript qui grace au moteur de l'AJAX XMLHttpRequest
    va appeler le PHP "det.php"

    j'ais pris le temps d'imaginer que contiennent tes variables qui viennent
    d'un MySQL vu leur format $val["DATE"] ... $val["CODE"]
    on suppose donc que c'est dans un genre
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?PHP
       $result=mysql_query( "select DATE,CODE* from matable
             WHERE  UserNom = 'dupond'  ");
          while ($val=mysql_fetch_array($result)) 
             {
    echo "<td><input type='button' value='+' OnClick='afficherD(\"".$val['DATE'] ." , ".$val['CODE'] .");\"></td>";
             }
    ?>

    j'ais donc testé avec ceci (html resultant)

    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
     
    <html><body>
    <script type="text/javascript">
    function afficher(co,cha,de)
    { 	var obj;
    	if (navigator.appName.search("Microsoft") > - 1)
    	{	obj = new ActiveXObject ("MSXML2.XMLHTTP");
    	}
    	else
    	{	obj= new XMLHttpRequest();
    	}
    	obj.open('POST',co,true);
    	obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	obj.onreadystatechange = function()
    	{ 	if (obj.readyState == 4 && obj.status == 200)
    		{ 	document.getElementById(de).innerHTML = obj.responseText;
     
    		}
    	};
    	obj.send(cha);
    	return(false);
    }
     
    function afficherD(Date,Code)
    {	var ch;
    	ch="date="+Date+"&code="+Code;
    	afficher("det.php",ch,"detail");
    }
     
    </script>
     
    <table><tr>
    <td><input type='button' value='+' OnClick="afficherD('21/01/2010' ,100 );" > </td></tr></table></body></html>
    Avec un php ayant un echo !
    Tout reste silencieux malgrés ma correction de syntaxe !
    Du reste le javascript est incorrecte car tes variables ne sont pas passées en POST convenablement a mon sens.

    Revois ta copie et soitplus compléte et précise
    Dernière modification par andry.aime ; 20/05/2010 à 08h05. Motif: Merci d'utiliser la balise [CODE](bouton # de l'éditeur)

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

Discussions similaires

  1. [AJAX] Fonctions ajax imbriquées
    Par dubitoph dans le forum AJAX
    Réponses: 1
    Dernier message: 15/10/2009, 15h21
  2. [AJAX] fonction ajax
    Par kati1985 dans le forum AJAX
    Réponses: 3
    Dernier message: 18/09/2009, 13h17
  3. Réponses: 6
    Dernier message: 02/06/2009, 13h20
  4. [AJAX] fonction Ajax
    Par aztec dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/05/2008, 20h00
  5. Réponses: 6
    Dernier message: 13/07/2007, 11h46

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