如何从Angular 4的MySQL表中填充下拉框

问题描述 投票:0回答:1

在PHP和HTML中,我只是简单地用来获取数组中的数据,并在选择框中显示它,如下所示:

<?php

mysql_connect('hostname', 'username', 'password');
mysql_select_db('database-name');

$sql = "SELECT nameid FROM PC";
$result = mysql_query($sql);

echo "<select name='PcID'>";
while ($row = mysql_fetch_array($result)) {
    echo "<option value='" . $row['nameid'] . "'>" . $row['nameid'] . "</option>";
}
echo "</select>";

?>

我的意思是,我可以连接到MySQL数据库,发出查询,并从表的每一行输出<option>框的<select>标记

但是我如何在Angular 4中实现相同目标?

[最好的方法是获取JSON中的数据,然后通过创建API在前端显示它?还是有其他方法?

php mysql angular
1个回答
1
投票

最好的方法是将数据作为JSON返回。使用rxjs订阅,您可以像这样获取数据

 users:any[]= [];
fetchData(){
  this.http.get("users/all-users")
      .subscribe((res)=>{
        this.users = res.data
       })

  }

所以在html中会是这样的

<select>
    <option *ngFor="let user of users" value="user.id">
  {{ user.name }}
</option>

 </select>

因此在您的php中返回这样的数据

function getUsers(){

  mysql_connect('hostname', 'username', 'password');
   mysql_select_db('database-name');

   $sql = "SELECT nameid FROM PC";
   $result = mysql_query($sql);

  return ["data"=>$result];
 }

建议不要使用普通的php,而是使用类似laravel / yii2的框架,这使返回数据变得容易。

注意:Angular4是一个前端框架,所以您不能像在PHP框架中那样使用echo。

© www.soinside.com 2019 - 2024. All rights reserved.