在flutter中使用php从扫描条码中获取信息

时间:2021-03-18 02:08:32

标签: php flutter dart

我想使用 php 代码来扫描条形码,但我只得到了条形码编号。我如何执行 php 代码以及如何在 flutter 中提取数据。我的 php 代码是这样的

<?php
error_reporting(0);
include_once ("dbconnect.php");
$code=$_POST['code'];
$encoded_string = $_POST["encoded_string"];
$decoded_string = base64_decode($encoded_string);

if (isset($code)){
   $sql = "SELECT * FROM PRODUCT WHERE CODE ='$code'";
}

$result = $conn->query($sql);

if ($result->num_rows > 0)
{
     $response["product"] = array();
     
     
    while ($row = $result->fetch_assoc())
    {
        $productlist = array();
        $productlist["id"] = $row["ID"];
        $productlist["name"] = $row["NAME"];
        $productlist["price"] = $row["PRICE"];
        $productlist["stock"] = $row["STOCK"];
        $productlist["description"] = $row["DESCRIPTION"];
        $productlist["code"] = $row["CODE"];
        array_push($response["product"], $productlist);
    }
    echo json_encode($response);
}
else
{
    echo "nodata";
}
?>

我尝试在 flutter 中提取数据,但它只传递条形码编号。这就是我尝试从 php 调用/传递数据的方式。

 Future<Product> getProduct()async{
    String code;
        await http.post("https://smileylion.com/easyshopping/php/getproducts.php",body:{
          "code":code
    })
        .then((response){
          print(response.body);
          if(response.body=="nodata"){
           titlecenter= "No product found";
          setState(() {
            productdata =null;
          });
         } else{
           setState(() {
          var extractdata = json.decode(response.body);
          productdata = extractdata["product"];

         });
         }
    }).catchError((err) {
      print(err);
    });
  }

如果有什么不对的地方需要补充吗?我对 Flutter 很陌生,我目前正在开发一个需要读取条码的应用程序。

0 个答案:

没有答案