Я сделал опцию поиска в раскрывающемся меню, когда посетители могут выбирать из нескольких слов и искать их.
Проблема в том, что с каждым словом добавляются дополнительные данные.
С одним словом это
/?s=keyword
С 2 словами это
/?s=keyword&sn=keyword2
но это должно быть
/?s=keyword+keyword2
Форма выглядит следующим образом
<form role="search" method="get" id="searchform" action="<?php bloginfo('siteurl'); ?>">
<div>
<label class="screen-reader-text" for="s">Search for:</label>
Type
<select name='s' id='type' class='postform' >
<option value='' selected='selected'>All</option>
<option class="level-0" value="dog">Dog</option>
<option class="level-0" value="cat">Cat</option>
</select>
Color
<select name='s' id='color' class='postform' >
<option value='' selected='selected'>All</option>
<option class="level-0" value="red">red</option>
<option class="level-0" value="white">white</option>
<option class="level-0" value="green">green</option>
</select>
<input type="submit" id="searchsubmit" value="Search" />
</div>
</form>
Есть ли способ заменить & sn = на + ?
Я пытался
$_get = str_replace('&sn=', '+', $_get);
Но это не сработало.
Рабочий ответ был дан Wgaffa и есть, но он не работает с IE или Firefox: (
<script type="text/javascript" charset="utf-8">
function add_criteria (el) {
search = document.getElementById('search_criteria');
search.value = document.getElementById('type').value + " " + document.getElementById('color').value;
}
</script>
<form role="search" method="get" id="searchform" action="<?php bloginfo('siteurl'); ?>">
<label class="screen-reader-text" for="s">Search for:</label>
Type
<select name='' id='type' class='postform' onchange="add_criteria(this);">
<option value='' selected='selected'>All</option>
<option class="level-0" value="dog">Dog</option>
<option class="level-0" value="cat">Cat</option>
</select>
Color
<select name='' id='color' class='postform' onchange="add_criteria(this);">
<option value='' selected='selected'>All</option>
<option class="level-0" value="red">red</option>
<option class="level-0" value="white">white</option>
<option class="level-0" value="green">green</option>
</select>
<input type="hidden" id="search_criteria" value="" name="s" />
<input type="submit" id="searchsubmit" value="Search" />
</div>
</form>