2009-11-24 101 views
1

我试图将搜索框添加到我的页面,该页面将引导用户访问不同网站上的搜索结果页面。我有隐藏字段中的操作和所有其他所需的数据,以确保其正确发布。将数据添加到输入字段

问题是,他们将额外的数据添加到搜索项中,使其成为高级搜索字段。所以不是searchTerm = X,而是期待searchTerm = Locale(en):FQE =(KE,None,11)MY_SEARCH_TERM:And:LQE =(AC,None,8)全文$

如何添加额外的数据在我的搜索字词周围,而不必打中间页面来进行连接?

这是我到目前为止有:

<form action="http://vendors.address/searchresult.do" method="post"> 
    <input type="hidden" name="type" value="search"> 
    <input type="hidden" name="sort" value="DateDescend"> 
    <input type="text" name="queryId"> 
</form> 

我需要的东西,可能会导致这种类型的事情:

<form action="http://vendors.address/searchresult.do" method="post"> 
    <input type="hidden" name="type" value="search"> 
    <input type="hidden" name="sort" value="DateDescend"> 
    <input type="hidden" name="queryId" value="Locale%28en%2C%2C%29%3AFQE%3D%28KE%2CNone%2C11%29MY_SEARCH_TERM_HERE%3AAnd%3ALQE%3D%28AC%2CNone%2C8%29fulltext%24"> 
</form> 

任何帮助,将不胜感激。

回答

1

你可以用隐藏的搜索字段来使用Javascript。在jQuery中,它会是这样的:

$("input[name='queryId']").keyup(function() { 
    $("#hiddenField").val("Locale%28en%2C%2C%29%3AFQE%3D%28KE%2CNone%2C11%29" + $(this).val() + "%3AAnd%3ALQE%3D%28AC%2CNone%2C8%29fulltext%24"); 
}); 

但它会打破没有JS。

编辑:是的,击败它,没有刷新的答案。

+0

希望没有JS答案,但这不是你的错。如果它不能在PHP中完成,则无法完成。 – 2009-12-02 13:34:34

0

两件事我能想到的:
1.只要把隐藏的输入语言环境和东西:

<input type="hidden" name="locale" value="en" /> 

2.使用JavaScript来提交表单(这是一个可怕的想法 - 你如果Javascript被关闭,不想让你的站点中断)。

+0

我觉得海报的要求是连接区域设置和其他数据,与实际查询一起,到一个单一的域(通过他们使用的任何上按预期的方式后端)。 – 2009-11-24 17:07:24

+0

如果他们不想点击一个中间的URL来完成它们的连接,那么Javascript就剩下了。是的,它不适用于某些用户。 – 2009-11-24 17:08:37

+0

是的,我想出了他们想要的东西,但Javascript似乎是一个糟糕的主意,我不得不提出一个替代方案。 – 2009-11-24 17:35:50

1

可以在提交表单之前使用JavaScript进行连接。有几种方法可以做到这一点,但这里是推荐的方法:

因为我没有看到提交按钮,我假设你计算你的用户点击回车键提交表单,所以你将需要在发送到服务器之前,先收听onSubmit事件并连接额外的信息。

给表单元素的ID:
<form action="..." method="post" id="searchForm">

,并给文本输入字段的ID:
<input type="text" name="queryId" id="queryId">

形式

 
<script> 
document.getElementById("searchForm").onSubmit = function(){ 
    var queryField = document.getElementById("queryId"); 
    queryField.value = "prepend_data" + queryField.value + "append_data"; 
    return true; 
} 
</script> 

或后添加该脚本块你可以使用JQuery(请做),你可以放在任何地方:

<script> 
$(function(){ 
    $("#searchForm") 
    .submit(
     function(){ 
     $("#queryId).val("prepend_data" + $(this).val() + "append_data"); 
     } 
    ); 
}); 
</script>

希望帮助