我正在使用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>
答案 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)
如前所述,您需要将名称中的数据格式化为;
所以目前分配给你的&#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"] ?>')"