Я хочу отправить две переменные {{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
Теперь я хочу знать, как это сделать в Ionic, чтобы отправить переменные в провайдера, а затем в источник http.get (Вот: https://idea.com/fetchMarket.php) и создайте этот php-файл для генерации данных json на основе этих переменных.
Ответ на этот вопрос как ниже:
В папке market pages в market.ts (компонент ts page) я добавил это .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 по определенной переменной.
НОТА
Это решение осуществляется через страницу с ионными компонентами, а не на странице интеграции с источником.
Других решений пока нет …