在搜索框的选项卡之间传递 HTML 输入值?
Pass HTML input value between tabs of a search box?
我有一个 GSA 搜索框,其中包含针对不同馆藏的选项卡(站点搜索、人员和图书馆)。我希望查询参数 (q) 在单击新选项卡时保持不变。
这里是 HTML 标签:
<div id="hd">
<ul id="nav">
<li id="tab1"><a href="./index-tab.php?site=master-MSU">Site Search</a></li>
<li id="tab2"><a href="http://www.montana.edu/search/">People</a></li>
<li id="tab3"><a href="./index-tab.php?site=libpub-library-website">Library</a></li>
</ul>
</div>
搜索参数是这样获取的(PHP):
// Set default value for query
$q = isset($_GET['q']) ? trim(htmlentities(strip_tags($_GET['q']))) : null;
这里是 HTML 搜索框:
<form id="searchBox" method="get" action="./index-tab.php">
<fieldset>
<label for="q">Search</label>
<input type="text" maxlength="200" name="q" id="q" tabindex="1" value="<?php echo (!is_null($q) ? $q : $suggestedSearch); ?>" onclick="if (this.value == '<?php echo $suggestedSearch; ?>') { this.value = ''; }" onblur="if (this.value == '') { this.value = '<?php echo $suggestedSearch; ?>'; }" />
<input type="hidden" maxlength="200" name="site" id="site" tabindex="1" value="<?php echo (!is_null($site) ? $site : $site); ?>" onclick="if (this.value == '<?php echo $site; ?>') { this.value = ''; }" onblur="if (this.value == '') { this.value = '<?php echo $site; ?>'; }" />
<button type="submit" class="button">Search</button>
</fieldset>
</form>
我怀疑我需要使用 jquery 和 AJAX 但我对其中任何一个都不熟悉。任何建议都会很棒。
谢谢!
为什么不直接将查询变量附加到每个选项卡 link?
<div id="hd">
<ul id="nav">
<li id="tab1"><a href="./index-tab.php?site=master-MSU<? if ( ! is_null($q)) { echo '&q=' . urlencode($q); } ?>">Site Search</a></li>
<!-- ... -->
</ul>
</div>
注意 urlencode()
调用 - 如果您在 URL 中打印它,这一点很重要。
我有一个 GSA 搜索框,其中包含针对不同馆藏的选项卡(站点搜索、人员和图书馆)。我希望查询参数 (q) 在单击新选项卡时保持不变。
这里是 HTML 标签:
<div id="hd">
<ul id="nav">
<li id="tab1"><a href="./index-tab.php?site=master-MSU">Site Search</a></li>
<li id="tab2"><a href="http://www.montana.edu/search/">People</a></li>
<li id="tab3"><a href="./index-tab.php?site=libpub-library-website">Library</a></li>
</ul>
</div>
搜索参数是这样获取的(PHP):
// Set default value for query
$q = isset($_GET['q']) ? trim(htmlentities(strip_tags($_GET['q']))) : null;
这里是 HTML 搜索框:
<form id="searchBox" method="get" action="./index-tab.php">
<fieldset>
<label for="q">Search</label>
<input type="text" maxlength="200" name="q" id="q" tabindex="1" value="<?php echo (!is_null($q) ? $q : $suggestedSearch); ?>" onclick="if (this.value == '<?php echo $suggestedSearch; ?>') { this.value = ''; }" onblur="if (this.value == '') { this.value = '<?php echo $suggestedSearch; ?>'; }" />
<input type="hidden" maxlength="200" name="site" id="site" tabindex="1" value="<?php echo (!is_null($site) ? $site : $site); ?>" onclick="if (this.value == '<?php echo $site; ?>') { this.value = ''; }" onblur="if (this.value == '') { this.value = '<?php echo $site; ?>'; }" />
<button type="submit" class="button">Search</button>
</fieldset>
</form>
我怀疑我需要使用 jquery 和 AJAX 但我对其中任何一个都不熟悉。任何建议都会很棒。 谢谢!
为什么不直接将查询变量附加到每个选项卡 link?
<div id="hd">
<ul id="nav">
<li id="tab1"><a href="./index-tab.php?site=master-MSU<? if ( ! is_null($q)) { echo '&q=' . urlencode($q); } ?>">Site Search</a></li>
<!-- ... -->
</ul>
</div>
注意 urlencode()
调用 - 如果您在 URL 中打印它,这一点很重要。