Глюк с Ajax

Тема в разделе "Как сделать...", создана пользователем a_n_d_y, 15 окт 2008.

Статус темы:
Закрыта.
  1. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Есть форма поиска
    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>
    У пользователей с включенным js (остальные проходят мимо этого шага) вызывается вот эта функция
    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());
            }
        }
    Вроде все нормуль работает. Но через аякс в ссылке вылазят вопросительные знаки перед айди
    http://site/search/????4 Конечно можно их в обработке убить, но как-то не очень хорошо все смотрится. Есть идеи по решению проблемы?
    PS Использую prototypejs...
     
  2. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Блин как все бонально было. Просто тупо перед <? был пробел...
     
  3. Liver

    Liver

    Регистр.:
    24 сен 2008
    Сообщения:
    316
    Симпатии:
    91
    И закрывающий ?> не ставь. Избавит от подобных проблем снизу.
     
    a_n_d_y нравится это.
  4. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Вроде снизу никогда проблем не было, но все равно спасибо, не знал что можно закрывающий не ставить...
     
Статус темы:
Закрыта.