[英]html php query without URL update
是否可以在不更新 URL 的情況下提交查詢?
在字典上,我想做第一個簡單的查詢:www.example.com/?q=word
在結果頁面上會有一個按鈕,我想用它用另一個查詢搜索更多結果。
第二個查詢將通過 www.example.com/more.php?q=word 正常完成。
該代碼如下所示:
<button onclick="window.location.href = 'more.php?q=<?php echo "$trimmed"; ?>';">search for more results</button>
但是,我希望 URL 保持不變,以便下一個字典查詢再次以簡單查詢開始。 換句話說,我想從 URL 中隱藏“more.php”部分。
假設您的www.example.com?q=word
指向 index.php。
還假設您的more.php
包含功能。 假設第三個,您的index.php
即使沒有GET
參數(即初始頁面調用)也會在瀏覽器中返回可顯示的內容。 這樣做,一個非常簡單的解決方案是針對 index.php 觸發每個查詢。 在那里,您可以根據使用的新 GET 參數type
處理每個查詢,甚至是不同的類型。
#index.php
require 'more.php';
// do something here to validate the parameters you use
switch($_GET('type')) {
case 'simple':
return simpleCall();
break;
case 'more':
return additionalInfo();
break;
}
function simpleCall() {
// do stuff here
// access $_GET for other paramters
}
#more.php
function complexCall() {
//do complex stuff here
}
最后,您的 HTML 看起來像這樣
<button onclick="window.location.href = '/?type="more"&q=<?php echo "$trimmed"; ?>';">search for more results</button>
除非您獲得的不僅僅是這兩種類型,否則它會在您的switch
語句中變得混亂。
出於這個原因,考慮不同的解決方案是個好主意,例如:
- 有這樣的路由系統https://medium.com/the-andela-way/how-to-build-a-basic-server-side-routing-system-in-php-e52e613cf241
- 在 JavaScript 的幫助下使用來自前端的異步調用來調用服務器上的不同 PHP 文件,但保持在前端的同一頁面上。 這將立即導致某種 API。 但這通常不是最壞的主意。
- 在您對代碼的 rest 執行任何操作之前,請驗證您的參數,無論是
POST
還是GET
。 有一個字典的例子聽起來非常像查詢一個數據庫,其中 SQL 注入是一件大事,例如,如果我們使用未經檢查的數據。
我希望這能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.