0

我在使用 php 表单概念时遇到了一些困难,如下所示:

网站上有一个关键字搜索输入表单,旨在优化网站上图像的外观。get这个想法是使用构造 url的方法传递关键字,如下所示:

  • page.php?keyword=tree

数据库查询的构建方式可以处理多个关键字,这些关键字将作为逗号分隔的关键字出现在 url 中:

  • page.php?keyword=tree,green,oak

我将如何构建一个提交表单,该表单将允许用户输入将输出此 page.php?keyword=tree 的关键字,如果他在输入字段中输入另一个关键字,它会将链接更改为

  • page.php?keyword=tree,green

在其末尾添加另一个关键字?

我最初的想法是检索当前 url 并在变量已经存在的情况下提供自定义的,但我不确定表单本身应该如何处理该操作。

任何帮助将不胜感激

4

2 回答 2

0

您尝试做的事情可以通过隐藏的<input>和一些 javascript 与最小的PHP 相结合来完成。

您的表单将如下所示:

<form id="myForm" action="">
    <input type="hidden" id="keyword" name="keyword" value="<?= $_GET['keyword'] ?>" />
    <input type="text" id="newKeyword" name="newKeyword" /><br />
    <input id="submit" type="submit" />
</form>

然后使用 jQuery,您可以修改提交按钮的行为:

<script language="javascript" type="text/javascript">
    $("#submit).on('click', function() {
        var keyword = $("#keyword").val();
        var newKeyword = $("#newKeyword).val();

        if (keyword != "") {
            keyword = keyword + ",";
        }
        keyword = keyword + newKeyword;

        window.location.href = "?keyword=" + keyword;
    });
</script>

请记住,当您访问数据库时,您不应该使用mysql_*函数。它们正在被弃用。而是使用PDO(从 PHP 5.1 开始支持)或mysqli(从 PHP 4.1 开始支持)。如果您不确定要使用哪一个,请阅读这篇 SO 文章

于 2012-08-03T20:19:29.253 回答
0

你甚至可以在服务器端使用多个input标签来解决这个问题,所有标签都带有name属性 = keywords[]

PHP 会从中创建一个不错的数组:$_REQUEST['keywords']. 拿它,例如implode

只是问,以防我不完全清楚......

于 2012-08-03T20:24:45.580 回答