![](/img/trans.png)
[英]PHP Jquery Ajax loading php page and sending value with GET on already loaded php by jquery-ajax
[英]PHP - Loaded Page with Ajax/jQuery - Get URL of master page
在我網站上的網頁(超過100個不同的頁面)上,我有以下代碼使用Ajax和jQuery加載和請求頁面。 調用此示例的頁面網址是products.php
和faqs.php
jQuery( document ).ready(function() {
new Ajax.Request('dynamic-page.php', {
method: 'POST',
requestHeaders: { Accept: 'application/json' },
onSuccess:function(transport) {
var response = transport.responseText.evalJSON(true);
// do something with response
}.bind(this)
});
});
現在在我的dynamic-page.php
我有幾個條件語句,其中一個條件語句需要知道調用它的頁面是什么。
在dynamic-page.php中,我可以獲得路徑:
$path = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
可以理解的是,這為我提供了動態頁面的網址(即http:www.website.com/dynamic-page.php
)
我的問題在我的動態頁面中,是否可以通過使用PHP來獲取其父父頁面的URL /路徑? 我需要知道我的動態頁面中用戶所在的頁面是products.php
還是faqs.php
如果您通過AJAX請求該頁面,則將其視為一個單獨的請求,因此,如果沒有額外的信息,我將看不到在服務器端如何知道。 但是,由於您是通過POST請求來請求頁面的,所以我認為最明顯的事情是在發出AJAX請求時將頁面的名稱放在POST變量中。 然后,您請求的頁面可以使用該信息來了解在什么情況下被請求。
您可能想嘗試將當前頁面的URL作為參數發送到Ajax調用。 嘗試這樣的事情,而不是:
jQuery( document ).ready(function() {
new Ajax.Request('dynamic-page.php', {
method: 'POST',
requestHeaders: { Accept: 'application/json' },
parameters: {url: window.location.href}, //the URL of the Current Page incl. query strings
onSuccess:function(transport) {
var response = transport.responseText.evalJSON(true);
// do something with response
}.bind(this)
});
});
在端點PHP文件(在本例中為“ dynamic-page.php”)中,您可以執行以下操作:
<?php
$originationURL = (isset($_POST['url']) && !empty($_POST['url'])) ? $_POST['url'] : "a-default-page.php";
//Do whatever you wish with the *$originationURL* variable...
?>
如果您要通過AJAX調用發布其他數據(例如表單數據),請執行以下操作: 確保沒有一個參數被命名為url。
我希望這會有所幫助...我沒有測試代碼,但我認為這應該可以解決問題...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.