繁体   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