在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在前端显示它?还是有其他方法?
最好的方法是将数据作为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。