[英]Accessing URL parameters - PHP & Angular JS
所以我的網站是用於后端的PHP和用於前端的AngularJS。 奇怪的是,我發現我必須在前端使用PHP來實現一些諸如獲取URL參數之類的東西。 說明如下;
例如,給出以下URL
http://www.test.co.uk/search-menu/1/cinamon-soho
http://www.test.co.uk/search-restaurant?location=asokoro&day=today&time=1100
我在同一頁面中的Angular代碼需要參數location,day等。現在我必須使用下面的行將它們傳遞給angular
$scope.l = <?php echo json_encode($_GET['location']); ?>;
我的問題是;
.js
頁面,我怎么能這樣做呢? <script src="http://www.test.co.uk/js/main.js"></script>
FYI
該網站不是使用AngularJS從頭開始構建的。 Angular后來被引入到前端繁重的PHP正在這樣做的網站不是SPA 。 沒有角度布線。
謝謝。
我得到這個代碼工作正常:
function $_GET(param) {
var vars = {};
window.location.href.replace(
/[?&]+([^=&]+)=?([^&]*)?/gi, // regexp
function( m, key, value ) { // callback
vars[key] = value !== undefined ? value : '';
}
);
if ( param ) {
return vars[param] ? vars[param] : null;
}
return vars;
}
(來源: http : //www.creativejuiz.fr/blog/javascript/recuperer-parametres-get-url-javascript )
然后,您可以像PHP $_GET
一樣使用它,但使用括號而不是括號。
我會使用下面的函數
function fetchGetVariables() {
var loc = "http://www.test.co.uk/search-restaurant?location=asokoro&day=today&time=1100";
// var loc = window.location.href; // Use this in actual use
var result = {};
var parts = loc.split("?");
if (parts.length > 0) {
var params = parts[1].split("&");
for (var i = 0; i < params.length; i++) {
var keyValuePair = params[i].split("=");
var key = keyValuePair[0];
var value = "";
if (keyValuePair.length > 0) {
value = keyValuePair[1];
}
result[key] = value;
}
}
return result;
}
console.log(fetchGetVariables());
這給出了輸出:
Object {location: "asokoro", day: "today", time: "1100"}
在這個小提琴看到它。
如果使用angular,可以使用$ routeParams從URL中提取值。
https://docs.angularjs.org/api/ngRoute/service/$routeParams#!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.