PHP/HTML 动态页面/搜索

标签 php html css

我发现很难理解我所遇到的这个问题的逻辑。

目前,我有一个 search.html 页面,提交后转到 Results.php。然后有一些代码在 mysql 中搜索输入到搜索页面的任何内容。

现在,我将如何在同一页面上进行搜索和结果?我将如何从搜索页面返回变量?例如在我使用之前;

$search_term = $_POST['name'];

如果“名称”变量在同一页面上,我如何获取它?

编辑:第二期

我有你们许多人回答的代码,非常感谢!我现在来到我的第二个问题。我有两个输入,一个是用于搜索查询的文本框,另一个是用于搜索主题的下拉框。

然后用户按下提交并搜索数据库,一切正常。我现在想创建另一个下拉框,以便用户可以按照他们认为合适的方式对提供的结果进行排序,例如价格从高到低等。

我已经完成了 HTML 代码,但正如您所想象的那样,第二次我按下提交它重新加载页面并且因为它不知道用户之前搜索过什么它退出了 php 并且就像它是一个新页面一样加载。

网址:http://helios.hud.ac.uk/u0862025/db/test.php

尝试一下,按提交以提升数据库中的所有产品。

最佳答案

你可以把所有的东西都放在一个文件里。这是粗糙且完全不完整的,但是像这样的东西 -

<?php
$results = array();
$term = "";

if(isset($_POST['name']))
{
    $term = $_POST['name'];
    $order_by = "";

    if(isset($_POST['order'])
    {
        switch($_POST['order'])
        {
            case "price-high-low":
                $order_by = "ORDER BY `price` DESC";
            break;
            case "name":
                $order_by = "ORDER BY `name` ASC";
            break;
            default:
                $order_by = "ORDER BY `id` DESC";
            break;
        }
    }

    $sql = "SELECT * FROM `your_table` WHERE `name` LIKE '%". sanitized($_POST['name']) ."%' $order_by";

    //run query and assign the results to a variable, like $results
}
?>
<form action="" method="post">
    <input type="text" name="name" value="<?php echo $term; ?>"><br>
    <?php if(!empty($results)): ?>
    <select name="order">
        <option value="price-high-low">Price: High to Low</option>
        <option value="name">Name</option>
    </select>
    <?php endif; ?>
    <input type="submit" value="submit">
</form>

<?php if(!empty($results)): ?>
Results for term: <?php echo $term; ?><br>
<?php foreach($results AS $res): ?>
    <?php echo $res['name']; ?><br>
<?php endforeach; ?>
<?php endif; ?>

当然这是非常粗略的并且假设了很多事情。就像你的结果是一个数组一样。你的结果有一个名为 name 等的键。

但正如您所问,这一切都在一页上,这就是基本理念。

请随时提出任何问题,我可能会根据需要进行更新。

** 更新 1 ** 我更新了此示例以考虑仅在生成结果后显示的下拉列表。它将使用添加的订单参数重新提交表单。此示例不考虑分页,并假设您具有清理输入的清理功能。显然,您应该使用 mysqli 或 PDO,因为它们都会为此提供解决方案。不要依赖像 mysql_real_escape_string 这样的 mysql_ 函数。所有 mysql_ 已弃用,不应再使用。

关于PHP/HTML 动态页面/搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14492507/

相关文章:

php - 重新安装 WAMP 后找不到我的数据

php - 选择两个日期之间的数据?

javascript - 控制台中出现不兼容的 IE 文档模式错误?

html - 更多元素选择器

html - 如何从右到左淡出图像?

css - 如何将组合媒体查询从 css 转换为 sass?

php - CMS上传图片文件安全问题

php - Laravel 不从地址发送

css - 每四次迭代修改 Django for 循环

css - 表列不相等