php - 如何从组件发送和获取数据到php? ionic 2

标签 php mysql frameworks ionic2

我在 Ionic 2 上有一个项目,我试图将一个值从我的组件文件发送到我的 php,这样我就可以将它用于我的 sql 查询。我的值是 navParams,但我不知道如何将它发送到 php,也不知道如何接收它。

我已经尝试了很多方法,但到目前为止我在 JSON 位置 0 得到了意外的标记

组件文件:

import { Infoproducto } from './../infoproducto/infoproducto';
    import { ServiceProvider } from './../../providers/service/service';
    import {BarcodeScanner , BarcodeScannerOptions} from '@ionic-native/barcode-scanner';
    import { Component } from '@angular/core';
    import { IonicPage, NavController, NavParams, AlertController } from 'ionic-angular';

    /**
     * Generated class for the Home2Page page.
     *
     * See http://ionicframework.com/docs/components/#navigation for more info
     * on Ionic pages and navigation.
     */
    @IonicPage()
    @Component({
      selector: 'page-home2',
      templateUrl: 'home2.html',
    })
    export class Home2Page {

    options: BarcodeScannerOptions;
        results:{};
        products2 : any[];
        cate : any[];
        id : any;



    constructor(private barcode : BarcodeScanner , public navParams: NavParams,public navCtrl: NavController, public service : ServiceProvider, public alertCtrl: AlertController) {
              this.id = navParams.get('gaming');
      }

      ionViewWillEnter(){
        this.getListarHome2();
        this.getListarCate();
      }

      getListarHome2(){
            this.service.ListarProdCate().subscribe(
              data => this.products2 = data,
              err => console.log(err)
            );      
          }

      getListarCate(){
            this.service.ListarCate().subscribe(
              data2 => this.cate = data2,
              err => console.log(err)
            );      
          }

      moverCategoria(gaming)
      {
        //this.id = { id : gaming.text};
        console.log(gaming);
        this.navCtrl.push(Home2Page,{"gaming": gaming});
      }
      async scanBarcode(){

        this.options = {
          prompt : 'Scanner barcode to see the result!.'
        }
         this.results = await this.barcode.scan(this.options);
        console.log(this.results);
      }

       loadinfoprod(){

           this.navCtrl.push(Infoproducto);

       }
    }

PHP 文件:

<?php

    header("Access-Control-Allow-Origin:http://localhost:8100");
    header("Content-Type: application/x-www-form-urlencoded");
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");

        $data = file_get_contents('php://input');
        $objData = json_decode($data);

        //$objData->gaming;


        $gaming = $objData->gaming;

     $datos;
     $resultados_finalees;

     @$db = mysqli_connect("localhost","root","","speedomart");

    if($db)
    {
            $query = "SELECT producto.codigo_barra, producto.nombre, producto.imagen, producto.precio FROM producto WHERE producto.idCategoria = 13"; 
            //$query = "SELECT producto.codigo_barra, producto.nombre, producto.imagen, producto.precio, stock_prod.ubicacion from producto JOIN stock_prod ON stock_prod.idSup = 1 ORDER BY RAND() LIMIT 0,2";
            $data=mysqli_query($db,$query);

            while($fila=mysqli_fetch_array($data))
            {
                $codigo = $fila[0];
                $nombre = $fila[1];
                $imagen = $fila[2];
                $precio = $fila[3];            


                $resultados_finalees[] = array("mensage"=>"algcorrecto","codigo"=>$codigo,"nombre"=>$nombre,"imagen"=>$imagen,"precio"=>$precio);

            }

              echo json_encode($resultados_finalees);


    }else
    {
        $resultados_finalees = array("mensage"=>"credenciales incorrectas");
        echo json_encode($resultados_finalees);
    };

    ?>

最佳答案

使用 Angular 的 HTTP 服务向后端发送 Ajax 请求(例如 PHP、python、node.js...)。然后就可以通过http GET params或者http POST body获取请求数据了。

应该是这样的:

import 'rxjs/add/operator/toPromise';
import { Http } from '@angular/http';

...

getHero(id: number): Promise<Hero> {
  const url = `${this.heroesUrl}/${id}`;
  return this.http.get(url)
    .toPromise()
    .then(response => response.json().data as Hero)
}

也许本教程可以帮助您:doc .

关于php - 如何从组件发送和获取数据到php? ionic 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44742008/

相关文章:

MySQL:如何选择表A上未出现在表B上的所有寄存器?

mysql - 选择右侧 mysql 的下一列?

Java 命令流程链生成器

php - CSS 不影响 PHP

php - AngularJS ng-repeat show 1 数据

php - PHP 中更多的嵌套 while 循环

java - 在后台透明地使用 Grizzly?

ios - 混合语言(ObjC+Swift)动态框架中的公共(public)swift类导入 "private"模块

php - 索引规范版本页面的正确方法是什么?

php - 在 EasyPost 中定义运输方式或费率