簡體   English   中英

html php 查詢沒有 URL 更新

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM