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


@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?

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 ?

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