单一形式的多个值

时间:2012-08-03 20:11:32

标签: php forms get

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

网站上有一个关键字搜索输入表单,用于优化网站上图像的外观。我们的想法是使用构造网址的get方法传递关键字:

  • page.php文件?关键字=树

数据库查询的构建方式可以处理多个关键字,这些关键字将以逗号分隔的关键字显示在网址中:

  • page.php文件?关键字=树,绿色橡木

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

  • page.php文件?关键字=树,绿色

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

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

任何帮助将不胜感激

2 个答案:

答案 0 :(得分: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开始支持)。如果您不确定使用哪一个,read this SO article

答案 1 :(得分:0)

您甚至可以使用多个input标记name attribute = keywords[]在服务器端解决此问题。

PHP将从中创建一个很好的数组:$_REQUEST['keywords']。拿它,例如implode

请问以防我不完全清楚......