将php变量/数组数据传递给angular js

Pass php variable/array data to angular js

本文关键字:angular js 数据 php 变量 数组      更新时间:2023-09-26

我使用php数据库连接,"$row"作为一个数组,将名称存储为其中的字段。但经过大量搜索,我终于知道如何在angular js中传递php变量这是代码,我正在努力实现。我可能是新手吗?我们将感谢您的帮助。

<?php
$con = mysqli_connect('localhost','root','','practice');
if (!$con) {
    die("couldnt connect". mysqli_error);
}
$q= "select * from test";
$result= $con->query($q);
if ($result->num_rows>0) {
    while ($row = $result->fetch_assoc()) {
        echo $row['name']."<br>";
    }
}
print_r($result);
echo json_encode($result);
?>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.4/angular.js">
</head>
<body>
<ul ng-init="names = <?php echo htmlspecialchars(json_encode($row)); ?>">
<li ng-repeat="x in names">
   <p>{{x.name}}</p>
</li>
</ul>
</body>
</html>

您的php代码需要一些改进,请使用以下内容:

$arr = array();
if ($result->num_rows>0) {
while ($row = $result->fetch_assoc()) {
$arr[] = $row['name'] ;
}
}

然后将其作为进行回波

<ul ng-init="names = <?php echo htmlspecialchars(json_encode($arr)); ?>">

如前所述,您需要将名称中的数据格式化为;

  1. 是有效的JSON
  2. 提供一个字段名称,因为您正在循环中查找它(ng repeat(

因此,正如你在评论中提到的,目前分配给你的"名字"的值是"eden frank matt"。这需要更改为类似

[
    {name: 'eden'},
    {frank: 'eden'},
    {matt: 'eden'}
]

因此,当您检查html源时,我们应该有一个集合,比方说"people",然后遍历它的所有元素并指向它们的字段"name":

<!DOCTYPE html>
<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.4/angular.js">
    </script>
</head>

<body ng-app>
<ul ng-init="people = [{name:'eden'}, {name:'frank'}, {name:'matt'}]">
    <li ng-repeat="person in people">
        <p>{{person.name}}</p>
    </li>
</ul>
</body>
</html>

我有类似的要求,下面的对我有效。

data-ng-click="editField(product, '<?php echo $_SESSION["login_user"] ?>')"