有没有办法把'&'在搜索查询字符串到'+'或者使用多个文本框扩展查询

Is there a way to switch the '&' in a search query string to '+' or extend the query using multiple text boxes?

本文关键字:查询 或者 扩展 文本 字符串 搜索 有没有      更新时间:2023-09-26

使用Craigslist的例子:

<form action="/search/sss" id="searchform" method="get">
  <input id="query" name="query" value="car"> 
<select id="catAbb" name="catAbb">
 <option value="sss">all for sale / wanted                  
</select>
  <input type="radio" name="srchType" value="T">
  <input type="radio" name="srchType" value="A" checked="checked">
  <input name="minAsk" class="min" value="$1000">
  <input name="maxAsk" class="max" value="$5000">&nbsp;</td>
  <input type="checkbox" name="hasPic" value="1">
  <input type="submit" value="Search">      
</form>

这个搜索字符串的结果:

newyork.craigslist.org/search/sss?query=car&srchType=A&minAsk=$1000&maxAsk=$5000

任何将& &'转换为'+'的方法,使url看起来像这样:

newyork.craigslist.org/search/sss?query=car+srchType=A+minAsk=$1000+maxAsk=$5000
最好的例子是Google的高级搜索:
google.com/search?q=car+"new+car"+honda+OR+toyota+OR+vw+-old+site:autotrader.com+$1000..$5000

换句话说,有没有办法像Google那样操作搜索表单,使用多个输入框来扩展查询,而不使用&号分隔每个输入?

希望我说的有意义

in javascript:

var string = "newyork.craigslist.org/search/sss?query=car&srchType=A&minAsk=$1000&maxAsk=$5000"

var部份= . replace(和 ;', '+');

//newstring = "newyork.craigslist.org/search/sss?query=car+srchType=A+minAsk=$1000+maxAsk=+5000"

我不知道你在说什么,但是可以肯定的是-正则表达式可以用来交换字符。在javascript中应该是这样的:

myUrl.replace(/'&/g,'+')

当你有

someurl?foo=1&bar=2
服务器环境中的

会得到一个数组

foo => 1
bar => 2

google用

做什么
googleurl?q=1+2+3

如果得到一个名为q的变量

q => 1+2+3

它们自己解析它。还有一些其他的选项,如mod重写,在我看来,给你更干净的url。

但是无论如何,这必须根据你的javascript生成,因为浏览器的表单默认行为不会这样工作。

作为对你最近评论的回应,在jQuery中,这看起来像

$('form').submit(function(event) {
    event.preventDefault();
    var query = '';
    $(this).find('inpup, textarea, select').each(function() {
        query += '+'+$(this).val();
    });
    query = escape(query.substr(1));
    //debug
    alert(query);
});