繁体   English   中英

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

[英]How to populate a drop-down box from a MySQL table in Angular 4

在 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 数据库,发出查询,并为表中每一行的<select>框输出<option>标签

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

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

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

 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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM