a_n_d_y
Гуру форума
- Регистрация
- 26 Мар 2006
- Сообщения
- 470
- Реакции
- 62
- Автор темы
- #1
Есть форма поиска
У пользователей с включенным js (остальные проходят мимо этого шага) вызывается вот эта функция
Далее обрабатываем запрос
Вроде все нормуль работает. Но через аякс в ссылке вылазят вопросительные знаки перед айди
Для просмотра ссылки Войдиили Зарегистрируйся Конечно можно их в обработке убить, но как-то не очень хорошо все смотрится. Есть идеи по решению проблемы?
PS Использую prototypejs...
HTML:
<div id="search_div">
<form action="/search_id" onsubmit="search_id(this);return false;">
<table width="100%"><tr>
<td>Метро</td>
<td>
<select name="metro">
{foreach key=key item=item from=$metro}
<option value="{$key}"> {$item}
{/foreach}
</select>
</td>
<td>Цена до (руб.)</td>
<td><input type="text" name="price"/></td>
<td>Кол-во комнат</td>
<td><input type="text" name="rooms"/></td>
</tr>
<tr>
<td align="right" colspan="6">
<input type="hidden" name="type" value="app"/>
<input type="submit" value="Поиск"/></td>
</tr>
</table>
</form>
</div>
HTML:
function search_id(f){
var val=$(f).serialize();
new Ajax.Request('/search_id/'+val.replace(/&/g,"*"), {
method: 'post',
onSuccess: function(transport) {
window.location.assign('/search/'+transport.responseText);
}
});
}
PHP:
function search_id($args){
if (isset($args[0])){
foreach(explode("*",$args[0]) as $v){
$el=explode("=",$v);
$n[$el[0]]=$el[1];
}
$type=$n['type'];
unset($n['type']);
$query=serialize($n);
$this->m['db']->query("insert into search values(NULL, '$query', '$type', '".mktime()."')");
echo $this->m['db']->insert_id();
}
else {
$type=$_POST['type'];
unset($_POST['type']);
$query=serialize($_POST);
$this->m['db']->query("insert into search values(NULL, '$query', '$type', '".mktime()."')");
header("Location: /search/" . $this->m['db']->insert_id());
}
}
Для просмотра ссылки Войди
PS Использую prototypejs...