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

Android Discussion :

PhoneGap récupérer données BD Wamp


Sujet :

Android

  1. #1
    Membre éclairé
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 174
    Points : 661
    Points
    661
    Par défaut PhoneGap récupérer données BD Wamp
    Bonjour,

    je développe une application Andoid à l'aide de Phonegap.
    Je cherche un moyen d'acceder aux infos stockées dans ma base , créee avec wamp. Avant Phonegap, j'y arrivais avec du PHP mais il semblerais que ce ne sois pas possible avec phonegap.

    Je souhaiterais afficher tout ce que contient ma base dans une liste, mais sans utiliser de php je ne vois pas comment faire.

    j'ai reussis a ajouter des elements a ma base en faisant :
    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
    <div data-role="content">		
                    <form action="http://srv/phonegap/traitForm.php" method="post">
                        <fieldset data-role="fieldcontain">
    						<p>
                                <label for="titre" >Titre :</label>
                                <input type="text" name="titre" id="titre" required/>
                            </p>
    						<p>
    							<label for="avec" >Avec :</label>
    							<input type="text" name="avec" id="avec" required/> 
                            </p>
                            <p>
    							<input type="submit" id="valide" value="Valider" data-theme="b" data-inline="true" />
    							<input type="reset" value="Reinitialiser" data-theme="b" data-inline="true"/>
                            </p>
                        </fieldset>
                    </form>				
    			</div>
    et avec coté serveur un php :

    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
    	try
    		{
    			$bdd = new PDO('mysql:host=localhost;dbname=rendezvous', 'root', '');							
    		}
    		catch (Exception $e)
    		{
    			die('Erreur : ' . $e->getMessage());
    		}
     
     
    		$req = $bdd->prepare('INSERT INTO reunion(titre,avec) VALUES (:titre,:avec)');
    		$req->execute(array(
    			'titre' => $_POST['titre'],
    			'avec' => $_POST['avec']
    		));
    mais je ne vois pas trop comment récupérer toutes ces données pour les afficher dans mon appli.

    Une idée ?

    Merci.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Tu as d'un coté ton appli avec phonegap.
    De l'autre ton serveur mysql avec ton script php.

    Dans ton appli phonegap tu dois appeler ce script, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#moncontainer').load('http://serveur.com/script.php');
    Que ce soit via phonegap ou dans une appli native tu ne peux pas te connecter à une base distante directement. Tu dois forcément passer par un script qui fait office de proxy.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 174
    Points : 661
    Points
    661
    Par défaut
    Ok merci. Je vais donc pouvoir appeler mon script pour parcourir ma BD.
    Par contre comment je peux envoyer les résultats de mes requêtes a mon ampli phonegap ?

  4. #4
    Membre éclairé
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 174
    Points : 661
    Points
    661
    Par défaut
    Bonjour,
    j'ai donc réussis a afficher ma liste de données, mais ma liste n'a pas le style jQuery mobile que j'utilise pourtant dans mon application.
    j'ai pourtant ajouter a mon script php le code permettant d'inclure jQuery mobile.

    Est ce normale ?

    mon code 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <head>
        <title>PhoneGap</title>
        	script type="text/javascript" charset="utf-8" src="cordova-2.2.0.js"></script>	
    		 link rel="stylesheet" href="css/jquery.mobile-1.2.0.min.css" />
    		script src="jquery.js"></script>
    		script src="jquery.mobile-1.2.0.min.js"></script>
     
    		script type="text/javascript">
    			$('#employeeListPage').load('http://serv/phonegap/getList.php');
    		</script>
      </head>
     
      <body>
    		<div data-role="page">
     
    			<div data-role="header" data-theme="c">
    				<h1>Liste</h1>
    			</div>
     
    			<div data-role="content">
     
    				<div id="employeeListPage">
    				</div>
     
    			</div>
     
    			<div data-role="footer" data-theme="c">
    				<div data-role="navbar">
     
    					<ul>
    						<li><a href="" class="ui-btn-active" data-icon = "grid" >Liste des rendez-vous</a></li>
    						<li><a href="index.html"  data-icon = "Add" > Ajout d'un rendez-vous</a></li>
    					</ul>
     
    				</div>				
    			</div>
     
    		</div>
     
    	</body>
    et mon code php

    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
    	<head>
    		meta charset="utf-8">
    		meta name="viewport" content="width=device-width, initial-scale=1">
    		link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
    		script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    		script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
     
    	</head>
     
     
    		<?php
    			$bdd = new PDO('mysql:host=localhost;dbname=rendezvous', 'root', '');	
    			$reponse = $bdd->query("SELECT * FROM reunion ORDER BY `reunion`.`titre` ASC");
     
    			echo "<ul data-role='listview' data-filter='true' data-filter-placeholder='Rechercher...' data-inset='true' id='mylist'>";	
     
    			while ($donnees = $reponse->fetch())
    			{
    				echo "<li><a href='#' >".$donnees['titre']."</a> </li>";
    			}
     
    			$reponse->closeCursor();							
     
    			echo "</ul>";							
    		?>
    ps : je n'ai pas oublier les "<" qu'il manque mais si je les laisse j'ai une erreur :

    Request denied by WatchGuard Firewall

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Ton script php n'a pas besoin de jquerymobile. Même pas besoin d'entête HTML.

    Ton script php pourrais se limiter à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $bdd = new PDO('mysql:host=localhost;dbname=rendezvous', 'root', '');	
    			$reponse = $bdd->query("SELECT * FROM reunion ORDER BY `reunion`.`titre` ASC");
    echo json_encode($reponse->fetchAll());
    L'idée est d'envoyer les données brute de la bdd via JSON et de les traiter ensuite dans ton appli.

    Sinon en gardant ton fonctionnement actuel , ton script php à juste besoin d'être :
    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
    <?php
    			$bdd = new PDO('mysql:host=localhost;dbname=rendezvous', 'root', '');	
    			$reponse = $bdd->query("SELECT * FROM reunion ORDER BY `reunion`.`titre` ASC");
     
    			echo "<ul data-role='listview' data-filter='true' data-filter-placeholder='Rechercher...' data-inset='true' id='mylist'>";	
     
    			while ($donnees = $reponse->fetch())
    			{
    				echo "<li><a href='#' >".$donnees['titre']."</a> </li>";
    			}
     
    			$reponse->closeCursor();							
     
    			echo "</ul>";							
    		?>
    Rien de plus.

    Pour faire simple ton script à juste besoin de renvoyer le balisage que ton appli interprétera avec les styles qu'elle embarque.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éclairé
    Avatar de maxusn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 174
    Points : 661
    Points
    661
    Par défaut
    Merci, je vais regarder ca.

    edit : je suis désolé j'ai vraiment beaucoup de mal :

    en utilisant le Json voila a quoi ressemble les données que je récupère.
    {"titre":"","0":"","avec":"","1":"","email":"","2":"","telephone":"","3":"","date":"","4":"","lieu":"ert","5":"ert","commentaire":"","6":""}
    Quand mon javascript s’exécute, j’obtiens une erreur dans la console :
    Uncaught SynthaxError : Unexpected token > at http://serv/phonegap/getList.php
    et mon appli passe dans la fonction error du javascript :

    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
    <script type="text/javascript">
    				var output = $('#employeeListPage');
    					$.ajax({
    								/* URL vers le fichier JSON */
    								url: 'serv/phonegap/getList.php',
    								dataType: 'jsonp',
    								jsonp: 'jsoncallback',
    								timeout: 5000,
    								success: function(data, status){
     
    									$.each(data, function(i,item){
    									var person = 
    									'<li>' +
    									'<h4>' + item.titre + '</h4>' 
    									'</li>';
     
    										output.append(person);
    									});
     
    								},
    								error: function(){
    								   output.text('There was an error loading the data.');
    								}
    							});
    				</script>

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

Discussions similaires

  1. récupérer données de plusieurs checkbox
    Par themis121 dans le forum Langage
    Réponses: 46
    Dernier message: 28/11/2005, 16h30
  2. Réponses: 6
    Dernier message: 26/11/2005, 15h43
  3. [JTable] Récupérer données d'une cellule éditée
    Par lilou77 dans le forum Composants
    Réponses: 9
    Dernier message: 14/09/2005, 10h34
  4. [Servlet] Méthode Get : récupérer données de l'url
    Par david71 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 01/02/2005, 11h52
  5. [Fichier] Récupérer donnée d'un fichier
    Par johnlehardos dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 11/05/2004, 13h42

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