Отправка переменных в Ionic провайдера из html для генерации json из источника http.get - PullRequest
0 голосов
/ 19 декабря 2018

Я хочу отправить две переменные {{cat_id}} и {{gender_id}} из ионного html ионному провайдеру и сгенерировать данные json на основе этих переменных.

home.html

<button ion-button block *ngFor="let location of allLocation" (click)="gotoMarket(location, cat_id, gender_id)">
                {{location.name}}
</button>

market.ts - провайдер

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';

@Injectable()
export class MarketProvider {
  constructor(public http: HttpClient) {
    console.log('Hello MarketProvider Provider');
  }    
  getMarket(){
    return this.http.get<any[]>('https://idea.com/fetchMarket.php')
  }    
}

fetchMarket.php

$mysqli =mysqli_connect("idea.mysql.com", "idea", "idea@123", "idea");

mysqli_set_charset($mysqli,"utf8");

$query = "SELECT * FROM market";
$dbresult = $mysqli->query($query);

while($row = $dbresult->fetch_array(MYSQLI_ASSOC)){     
    $data[] = array(
        'id' => $row['mar_id'],
        'name' => $row['mar_name'],
    );
}     
if($dbresult){
    $result = json_encode($data);             
}
else {
    $result = "{'success':false}";
}    
echo $result;

Я знаю, как отправить переменнуюна php https://idea.com/fetchMarket.php?cat_id=$cat_id&gender_id=$gender_id

Теперь я хочу знать, как это сделать в ионном режиме, чтобы отправить переменные поставщику, а затем в источник http.get (здесь: https://idea.com/fetchMarket.php) исоздайте этот php-файл для генерации данных json на основе этих переменных.

1 Ответ

0 голосов
/ 19 декабря 2018

Ответ на этот вопрос приведен ниже:

В папке страниц рынка на market.ts (страница компонента ts) я добавил это .filter(allMarket => allMarket.cat_id=== this.cat_id).filter(allMarket => allMarket.gender_id=== gender_id)

import { Component } from '@angular/core';
import { NavController, NavParams, LoadingController } from 'ionic-angular';

import { MarketProvider} from '../../providers/market/market';


@Component({
  selector: 'page-market',
  templateUrl: 'market.html',
})
export class MarketPage {

  public allMarket = [];

  cat_id: string;
  gender_id: string;

  constructor(private Market : MarketProvider, public LoadingController : LoadingController, public navCtrl: NavController, public navParams: NavParams) {

    this.cat_id = navParams.get('cat_id');
    this.gender_id= navParams.get('gender_id');
  }

  ionViewDidLoad() {
    let allDataLoadingController = this.LoadingController.create({
        content: "Please Wait"
    });
    allDataLoadingController.present();

    this.Market.getMarket()
    .subscribe((response)=>{allDataLoadingController.dismiss();
    this.allMarket = response.filter(allMarket => allMarket.cat_id=== this.cat_id).filter(allMarket => allMarket.gender_id=== gender_id)});
  }
}

Теперь он фильтруетРезультат json основан на конкретной переменной.

ПРИМЕЧАНИЕ Это решение реализовано на странице ионного компонента, а не на странице интеграции источника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...