搜索表单的空值

时间:2013-09-27 14:11:58

标签: php html forms

我想从我正在开发的页面中搜索地址簿。地址簿是另一页的内容,此页面上的地址簿的网址为http://example.com/start.php。这个地址簿有自己的搜索字段,我将用于我的页面。 我写了以下搜索表单:

<form action="http://example.com/start.php" method="post" target="_blank">
<div>

<input type="hidden" value="adress" name="cmd" /> 
<input id = "adressinput" name="search" type="text" title="Search in the adress book [ctrl-f]" accesskey="f" value="adress book" />
<input id="refresh" title="refreshnow" name="refresh" type="image" src="icons/Downloads/arrow-circle-single.png" class="iconbutton"/>                               

</div>
</form>

问题在于,当我在表单的文本框中写入内容并在单击图标refreshnow之后,将显示页面http://example.com/start.php(地址簿),但此页面的搜索字段仍然有一个空值,当然我没有得到任何结果。

这不是我的第一个搜索表单。我写了类似的表格并且它们有效,所以,我不知道它为什么不起作用。

2 个答案:

答案 0 :(得分:0)

  1. 从表单中删除目标属性,地球上绝对没有理由再使用弹出窗口了。
  2. 2.。)您使用的是什么脚本语言?如果PHP引用了$_POST['search'],或者您是否意外引用了$_GET['search']

答案 1 :(得分:0)

这一行

<input id = "adressinput" name="search" type="text" title="Search in the adress book [ctrl-f]" accesskey="f" value="adress book" />

应该是

<input id="adressinput" name="search" type="text" title="Search in the address book [ctrl-f]" accesskey="f" value="<?php echo $_POST['search']; ?>" />

或者你可以做一些更聪明的事情

if (isset($_POST['search'])) {
    ?>
    <input id="adressinput" name="search" type="text" title="Search in the address book [ctrl-f]" accesskey="f" value="<?php echo $_POST['search']; ?>" />
    <?php
} else {
    ?>
    <input id="adressinput" name="search" type="text" title="Search in the address book [ctrl-f]" accesskey="f" value="adress book" />
    <?php
}  

这有点乱,你也可以在value的{​​{1}}中使用一个变量,这样你文件中的行数就会少一些,例如。

input

if (isset($_POST['search'])) { $value = $_POST['search']; } else { $value = 'adress book' } <input id="adressinput" name="search" type="text" title="Search in the address book [ctrl-f]" accesskey="f" value="<?php echo $value; ?>" /> 将包含输入的搜索字词的值(一旦提交表单即可。

这是查询数据库以查找与其内容匹配的搜索结果所需的值。