Ionic 2 : Problème de récupération d'infos sous forme de liste

Par AgentXOne, il y a 9 ans


Bonjour,

je cherche à recupérer les infos à pqrtir de mon serveur PHP.

Voici mon code

//Dans mon service d'authentification checkVehicleList() { this.getUserId().then(data => { this.userid = data; return new Promise(resolve => { alert(this.userid); this.http.get('http://localhost/helloworld/api/v1/list?iduser='+this.userid).subscribe(data => { alert(data.json().InformationsVehicules); if(data.json().InformationsVehicules){ alert("reussite"); } else { alert("error !") } }); }); }); } //Dans la page des vehicules, j'appel la fonction juste pour savoir ce qu'elle qaffiche avec les alerts public MarqueVeh : any; public marque : any; loadVeh() { this.viauth.checkVehicleList().then(data => { this.MarqueVeh = data; }); } // Voici le tableau que me retourne ma route PHP {"InformationsVehicules":[{"marque":"bgy","matricule":"ce1370","numero_chassi":"123654"},{"marque":"bvd","matricule":"derty","numero_chassi":"ddff"}]}

Je veux que le tableau qui est retourne soit conserve dans une variable pour que je puisse l'utiliser comme ceci

<ion-content> <ion-list *ngFor="#Veh of MarqueVeh"> <button ion-button round class="veh-button" clear color="light" (click)="showVehiclePopUp()">{{Veh.marque}}<span style="display:inline-block; width: 200px;"></span> <ion-buttons end> <ion-icon name="ios-play"></ion-icon> </ion-buttons></button><br> </ion-list> </ion-content>

j'ai mis les alerts dans mon code pour savoir ce que les variable contiennent et je recois comme message "undefiened".

3 réponses

Defy, il y a 9 ans

@saibe Ha ben t´as pas compris la question, ionic 2 c´est du javascript ;-)

tu as bien injecté http dans ton service?

ton server php te retourne bien du json?

Maenhyr, il y a 9 ans

Bonjour,

voici tout ce dont tu as besoin pour ta fonction

checkVehicleList() { this.getUserId().then(data => { this.userid = data; return this.http.get('http://localhost/helloworld/api/v1/list?iduser=' + this.userid) .map(data => data.json().InformationsVehicules); }); } // ici, vu qu'on utilise un Observable, // il faut remplacer then par subscribe loadVeh() { this.viauth.checkVehicleList().subscribe(data => { this.MarqueVeh = data; }); }

get() retourne deja un Observable, il n'est pas necessaire de le wrapper en Promise. Deplus tu n'utilises pas resolve qui sert a resoudre ta promise donc ton code ne va jamais dans le then.

Comme l'a dit @Defy, tu dois injecter http dans ton constructeur. Est ce que ton appel HTTP se fait correctement ? Que recois tu dans l'onglet Network de Chrome dev tools ?

AgentXOne, il y a 9 ans

Bonjour ! Mon serveur PHP retourne bien les donnees vu que j'ai testé ,es requètes avec Postaman.