簡體   English   中英

將php變量/數組數據傳遞給angular js

[英]Pass php variable/array data to angular js

我正在使用帶有“$ row”的php數據庫連接作為一個數組,將名稱存儲在其中。但經過大量搜索,我得到了如何在角度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源代碼時,我們應該有一個讓人們說“人”的集合,然后遍歷它的所有元素並指向它們的字段“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"] ?>')"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM