我在加載 index.php 頁面后使用 jquery 加載 script.php 檔案,我希望能夠在我的 script.php 檔案中檢索我的 URL 引數,但它不起作用,因為頁面已經加載并且它告訴我
Undefined array key "query"
索引.php:
<div id="loader">
$(window).on('load', function () {
$('#loader').load('scripts.php');
})
腳本.php:
$current_url = $_SERVER['REQUEST_URI'];
$parts = parse_url($current_url);
parse_str($parts['query'], $query);
$parameter = $query['q'];
網址示例: https ://example.com/search?q=test
加載頁面后有什么方法可以取回我的引數嗎?
先感謝您
uj5u.com熱心網友回復:
您可以將任意查詢字串引數傳遞給scripts.php,就像您傳遞任何其他 URL 一樣:
...load('scripts.php?q=' variable)
但是,無法scripts.php知道請求中涉及哪些引數index.php。
您必須轉發任何您有興趣scripts.php了解的內容。
但是,尚不清楚您為什么要這樣做。您通常不應該通過多個 HTTP 請求在前端組裝多個相關的 PHP 頁面。相反,您的 PHP 頁面應該只包含必要的相關組件,并在單個請求中提供完整的檔案。
與其index.php提供一些 JavaScript 來發出另一個往返請求scripts.php,轉發有關原始請求的詳細資訊,為什么不只是擁有index.php require( "scripts.php");,以便它成為原始請求的一部分?
uj5u.com熱心網友回復:
HTTP 請求與對回傳 HTML 檔案的 URL 發出scripts.php的HTTP 請求不同。它有一個不同的 URL。
如果你想從后者復制查詢字串,那么你需要明確地這樣做。
const q = new URLSearchParams(location.search);
const url = new URL("search.php", location);
[...q.entries()].forEach(
([key, value]) => url.searchParams.append(key, value)
);
$('#loader').load(url.toString());
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/478986.html
下一篇:使用類查找上面的下一個元素
