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

时间:2015-07-05 08:36:11

标签: javascript php json angularjs

我正在使用php数据库连接" $ row"作为一个数组,存储名称作为一个字段。但经过大量的搜索,我得到如何在角度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>

3 个答案:

答案 0 :(得分:5)

你的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 :(得分:1)

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

  1. 是有效的有效JSON
  2. 提供字段名称,因为您在循环中搜索(ng-repeat)
  3. 所以目前分配给你的&#34;名称&#34;是&#34; eden frank matt&#34;正如你在评论中提到的那样。这需要改为:

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

    所以,当你查看 html来源时,我们应该有一个让我们说'&34;人&#34;然后通过它的所有元素并指向他们的领域&#34; name&#34; :

    <!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>
    

答案 2 :(得分:0)

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

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