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

jQuery Discussion :

afficher json avec ajax


Sujet :

jQuery

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

    Informations forums :
    Inscription : Février 2008
    Messages : 108
    Par défaut afficher json avec ajax
    Bonjour à tous,
    je souhaite acceder et afficher mes données sous forme json .
    Ces données sont envoyé par un servlet qui s'occupe de traiter la requête de l'utilisateur ( depuis un formulaire ) et renvoi une liste de données comme 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
    15
    16
    17
    18
     
    {"myArrayList":[
    				{
    				"name":"lieu1",
    				"latitude":"44.50669",
    				"longitude":"-69.797974"
    				},
    				{
    				"name":"lieu2",
    				"latitude":"43.18355",
    				"longitude":"-85.892945"
    				},
    				{
    				"name":"lieu3",
    				"latitude":"40.616904",
    				"longitude":"-74.094129"
    				}
    ]}
    Comment procéder avec Ajax et jquery pour accéder a ces données la ( renvoyé par le servlet) depuis ma page html.

    Formulaire est comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    <form id="myform" method="post" action="/InputSearch">
    	<input type=text align="middle" size=51 name=query_value
    				id="query_value" >
     
    	<p style="text-align: center;">
    	<input  type="submit" align="middle" size=13 value="Search ">
    			</p>
    		</form>
    /InputSearch étant mon servlet qui effectue le traitement de la requête et renvoi le résultat avec json:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public  void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException {
     
                    response.setContentType("text/html");
    		response.setCharacterEncoding("UTF-8");
    		response.setHeader("Cache-Control", "no-cache");
     (....................traitement .........)
                   response.getWriter().write(gson.toJson(array).toString());

    Merci pour vos réponses

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Tu fais un submit de ton form ...
    => la page se recharge
    tu devrais passer par ajax
    pour juste recupérer le json :
    http://api.jquery.com/jQuery.parseJSON/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

    Informations forums :
    Inscription : Février 2008
    Messages : 108
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Tu fais un submit de ton form ...
    => la page se recharge
    tu devrais passer par ajax
    pour juste recupérer le json :
    http://api.jquery.com/jQuery.parseJSON/
    Merci pour ta réponse!!
    mais j'ai pas bien compris " faire un submit du form " et puis passer par ajax.
    Comment passer par ajax ?

    pour récupérer le json est il possible de le faire directement depuis le servlet ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    si tu soumets le form ... tu recharges la page ...

    le principe est de faire une requete ajax qui pointe sur ton fichier sur le serveur
    fichier qui va rediger le json.

    lors du retour ajax tu recupères le string retourné par le serveur.


    en l'occurrence si tu ne souhaites récupérer qu'un json, jquery possède cetet methode :
    http://api.jquery.com/jQuery.getJSON/

    cette page te montre la methode avac ajax classique ou avec getJson
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 108
    Par défaut
    Merci!

    je suis tjrs coincé à l'étape : récuperer les données json depuis le servlet ....

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Montre nous ou tu en es avec ton code ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 108
    Par défaut
    Dans ma page html :

    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
    <script type="text/javascript">
      $(document).ready(function() {
     
    		  $.get('/menu.jsp', {  //servlet qui contient les liens vers les autres pages html présentes.
    				selected : "ma_page_avec_formulaire"
    			}, function(data) {
    				$('#navigation').html(data);
    			});	
     
    	});
    function display(){
    	$("input#getcameralist").submit(function() { 
        $.ajax({ 
                       type:"POST", 
                       url:"http://localhost:22001/InputSearch",  //lien vers le servlet qui renvoi la list json ,je ne suis pas sur de cet appel .
                       cache: false,   
                       data:{},    
                       dataType: 'json',   
              			success:function(myArrayList){      
                           alert(myArrayList[0].latitude);    //je souhaite pour le moment afficher la latitude du premier élément, pour ensuite l'afficher sur la map déja chargé sur ma page.
                  }
                       });
     
    	  });
     }
     
    </script>
    voici la partie du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form id="myform" method="post">   //j'ai enlevé action="/InputSearch" je souhaite que ca soit Ajax qui récupère le tableau Json d'où l'appel a la fonction "display" dans la balise input ci dessous
    			<input type=text align="middle" size=51 name=query_value
    				id="query_value">
     
    			<p style="text-align: center;">
    				<input id="getcameralist" type="submit"  align="middle"
    					action="display" size=13 value="Search ">
    			</p>
    		</form>

    Ma classe servlet qui s'occuper de renvoyer le tableau json:

    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
    public class SearchCamServlet extends HttpServlet{
    public  void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException {
     
    		// TODO Auto-generated method stub
    		doPost(request, response);
     
    	}
     
    	public  void doPost(HttpServletRequest request,	HttpServletResponse response)throws ServletException, IOException {
    		response.setContentType ("text/html"); 
    		response.setCharacterEncoding("UTF-8");
    		response.setHeader("Cache-Control", "no-cache");
     
     
    		(...traitement du string entrée par lutilisateur dans le formulaire et renvoi du tableau json ...)
     
    				                     response.getWriter().write(gson.toJson(array).toString());
     
    }
    }
    tableau json renvoyé par le servlet:

    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
    {"myArrayList":[
    				{
    				"name":"lieu1",
    				"latitude":"44.50669",
    				"longitude":"-69.797974"
    				},
    				{
    				"name":"lieu2",
    				"latitude":"43.18355",
    				"longitude":"-85.892945"
    				},
    				{
    				"name":"lieu3",
    				"latitude":"40.616904",
    				"longitude":"-74.094129"
    				}
    ]}


    En cliquant sur le boutton "search" rien ne se passe , la page se recharge seulement...

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    que retourne un simple
    dans le success ?.
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 108
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    que retourne un simple
    dans le success ?.
    Il ne retourne rien quand je clique sur le bouton "search", la page se recharge seulement.

    Soit l'appel à la fonction "display" n'est pas bon ,soit l'appel à ma servlet pour la récupération de mon tableau est erronée.

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    heu ... qui dit ajax dit pas de rechargement !!!!!
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 108
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    heu ... qui dit ajax dit pas de rechargement !!!!!
    j'ai finalement procéder autrement :

    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
     
    var xmlHttp;
     
     
    function startRequest(){
    	alert("call function OK"); //affichage ok
    	createXmlHttpRequest();
     
    var u1=document.getElementById("query_value").value;
    	alert(u1); //affichage de ce que j'ai tappé dans le champs input OK
     
    xmlHttp.open("GET","http://localhost:22001/InputSearch?query_value="+u1 ,true);
    xmlHttp.setRequestHeader("Content-type", "application/json");
    xmlHttp.onreadystatechange=handleStateChange;
    xmlHttp.send(null);
    }
     
    function createXmlHttpRequest()
    {
    	alert("appel createXMLHTTPRequest"); //affichage OK
        if(window.ActiveXObject){
         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
       }
     
     else if(window.XMLHttpRequest)
     {
         xmlHttp=new XMLHttpRequest();
      }
     
    }
     
    function handleStateChange()
    {
     
    	if (xmlHttp.readyState == 4 && xmlHttp.status == 200|| xmlHttp.status == 0){ 
    		var json = eval('(' + xmlHttp.responseText + ')');
    		alert(json.myArrayList[0].name);  //  OK
    		alert(json.myArrayList[0].latitude);  //  OK
    		alert(json.myArrayList[0].longitude);  //  OK
     
    	  }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    form id="myform" ></form>
    		<input type=text align="middle" size=51 name="query_value"
    			id="query_value">
    		<p style="text-align: center;">
    				<button id="getcameralist" align="middle" size=13 onclick = "startRequest();">Search a virtual sensor</button>
    		</p>
    L'affichage fonctionne maintenant je dois assigner chaque latitude , longitude à ma carte google map ... pour afficher pour chaque lieu un marqueur et avoir un zoom adapté

Discussions similaires

  1. [AJAX] coomment utiliser Json avec Ajax
    Par Xeuch dans le forum AJAX
    Réponses: 1
    Dernier message: 11/04/2013, 15h39
  2. Afficher contenu JSON avec JavaScript sans AJAX
    Par glbaa dans le forum Général JavaScript
    Réponses: 23
    Dernier message: 30/11/2011, 17h03
  3. [AJAX] Afficher une image avec ajax
    Par Mister Nono dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/11/2007, 19h23
  4. [AJAX] Afficher des photo avec AJAX
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/08/2007, 08h34
  5. [AJAX] Afficher une image GD avec ajax
    Par darkvodka dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/06/2007, 00h43

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