我正在使用Angular来创建我的单页面视图,但我很难通过URL从sql select中传递ID。
我创建了我的视图:
var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {
$routeProvider
.when("/jobSingle", {
templateUrl : "jobSingle.php"
});
});
作品很棒,向我展示了正确的页面。我正在测试数据,所以这是开放的SQL注入,但我正在玩Angular所以不要惊慌 - 我从另一个视图链接到单个视图页面如下:
$sql = "SELECT * FROM jobs";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) { // Start while
echo $row['title'];
echo '<a href="#jobSingle?id=' . $row['id'] . '">View Job</a>';
?>
<div class="lightboxHide animated fadeInUp">
<div id="mylightbox">
<?php echo $row['title']; ?>
</div>
</div>
<?php
} // End while
} else {
echo "0 results";
}
所以,我有echo '<a href="#jobSingle?id=' . $row['id'] . '">View Job</a>';
它似乎是正确的网址,它打开了正确的视图但是当我获取ID形式的URL和var转储它我什么也得不到...
$jobId = $_GET['id'];
var_dump($_GET);
$sql = "SELECT * FROM jobs WHERE id = '$jobId'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) { // Start while
echo $row['title'];
} // End while
} else {
echo "0 results";
}
我的var转储只是显示....
array(0) { } 0 results
当我在$_GET
上执行var_dump时,我得到一个NULL
值返回...它几乎就像url被忽略了,而且Id至少是......
这是否可能或者我错过了这一点?当我和Php合作时,我正在学习角度,主要是我想知道这是否能够做到?
答案 0 :(得分:0)
#jobSingle?id=...
标记中的<a></a>
设置了网址的<fragment>
部分。当您打开网站时,您的浏览器不会在其请求中包含<fragment>
部分网址。
要查看差异,只需在ULR中交换<query>
和<fragment>
部分即可实现正确的网址方案。例如:?id=1#jobSingle
。
以下是常见的网址语法,以阐明我所谈论的内容:
<scheme>://<user>:<password>@<host>:<port>/<path>?<query>#<fragment>
在URL中#mark之后的所有内容都被视为片段。
RFC 1738和RFC 3986包含已提出主题的完整说明。