0

我有一个搜索网站。我希望我主页上的搜索栏表单在结果页面上可见。

有哪些解决方案可用于预加载表单的所有各种元素?有 3 个文本字段、2 个单选按钮和两个复选框。

目前,我不得不用一个 php 函数来中断每个元素,该函数将查看 $_GET['valueName'] 是否等于当前元素选项,但这似乎太复杂和难看,无法成为标准。

并行示例:

<select name="section">
<option value="free" selected="<? if($_GET['section'] == 'free'){echo 'selected';} ?>">Free</option>
<option value="under100" selected="<? if($_GET['section'] == 'under100'){echo 'selected';} ?>">Under $100</option>
<option value="under200" selected="<? if($_GET['section'] == 'under200'){echo 'selected';} ?>">Under $200</option>
<option value="any" selected="<? if($_GET['section'] == 'any'){echo 'selected';} ?>">Any price</option>
    </select>

我还没有运行它来知道它甚至可以工作,但是没有填充表单的客户端方式吗?

4

2 回答 2

0

就像是:

<input type="text" name="search" value="<?php if(isset($_POST['your_var']){ echo htmlspecialchars($_POST['your_var']);}?>">

然后对于复选框/收音机,我相信你会做一个循环,但我不记得我的头顶了。

于 2013-01-11T02:59:28.030 回答
0

如果您希望将表单中的变量传递到另一个页面并显示在该页面上,您可以执行以下操作:

<form action="new_page.php" method="POST">
<input type="text" name="search_phrase">
</form>

然后在您的 new_page 上,您可以加载它们并显示它们:

<?php
if(isset($_POST['search_phrase'])){ echo $_POST['search_phrase']; }
?>

这可能是将表单数据加载到新页面上的最简单方法;如果您不想使用框架、div 或 AJAX。我会给出更具体的答案,但您没有给出示例代码;但无论哪种方式,这种方法都应该可以正常工作。

如果您希望整个搜索栏本身包含在两个页面中,您可以将搜索栏放在不同的 php 文件中,然后将其导入:

include('my_search_bar.php'); 

如果您认为 $_GET 丑陋且干扰您可以使用 POST (它不会将变量像 link.php?var=abc...您可以在您的页面上制作它,以便在函数执行和显示变量之前所有这些都是必需的,从而使函数看起来更流畅。

于 2013-01-11T02:54:14.357 回答