ajax post-запрос
подскажите, что не так.
у меня есть форма <FORM id="myForm" ACTION="index_ajax.php?search=1" METHOD=POST> обработчик PHP: <? if(isset($_REQUEST["search"])) { $q_str = "SELECT * FROM hotels WHERE "; if($_REQUEST[f_name] != "") $q_str = $q_str."name LIKE '%".$_REQUEST["f_name"]."%' AND "; else $q_str = $q_str." 1 AND "; if($_REQUEST[a_price] != "") $q_str = $q_str."price >= ".$_REQUEST["a_price"]." AND "; else $q_str = $q_str." 1 AND "; if($_REQUEST[b_price] != "") $q_str = $q_str."price <= ".$_REQUEST["b_price"]." AND "; else $q_str = $q_str." 1 AND "; $q_str = $q_str." 1"; $result = mysql_query($q_str); } ну и собственно ajax $(document).ready(function() { $('#myForm').bind('submit', function(e) { e.preventDefault(); // <-- important $(this).ajaxSubmit({ type: 'POST', target: 'body', cache: false, url: 'index_ajax.php', data: 'search=1', }); }); }); в этом случае ничего не происходит, если же url оставить как было: index_ajax.php?search=1 то поиск 1 раз срабатывает, после этого затыкается, т.е не реагирует. |
в data случайно не нужно передавать объект, типа:
data: {search: 1} ? |
да, спасибо.
уже сам накопал, что так. но почему после 1 айякс запроса поиск отказывается работать? |
пробовал сделать с помощью обычного метода ajax, но не знаю как правильно вывести, делал так:
$('#myForm').live('submit', function() { $.ajax({ url: 'index_ajax.php', data: { search: '1'}, success: function(data){$("body").html(data);} }); return false; }); }); в этом случае поиск не срабатывает вообще |
Что значит не срабатывает? не возвращается ответ или что?
|
Цитата:
а результата на странице нет, как будто ниче не нажимал вот ответ(Opera Dragonfly): Код:
URL: http://localhost/index_ajax2.php UPD: добавил значения полей, поиск стал работать! но после 1 поиска, снова затыкается, так что проблема была не в методе ajaxSubmit(); абсолютно такое же поведение где-то что-то не указано. подскажите |
Вообще честно говоря не понимаю. Зачем сабметить всю форму если используете Ajax?
//Глобальные установки $(document).ready(function(){ $.ajaxSetup({ url: "syte/search.php", type: "POST", dataType: "text" }); }); //Клик по кнопке отправить. Обыкновенный div с свойством cursor:pointer; $('#submit').click(function (){ var senddata='keywords='+$('#idinput').val(); $.ajax({data:senddata, success: function (data) {alert(data);} }); }); И нажимайте сколько хотите раз. |
Цитата:
заменил событие на click.посмотрел в Opera Dragonfly, что по нажатию запрос отсылается и возвращается с кодом 200, но на странице ниче не меняется так же. может дело в том что у меня запрос идет к БД MySQL? т.е данные что должны выводиться на станице через поиск не статические, а берутся из БД |
Так а вы что то в браузер выводит? что выводите то и получите в success
print 'Ответ от Ajax запроса'; |
Цитата:
поле этого, сколько не кликай - запросы идут - результат на странице не меняется |
Часовой пояс GMT +3, время: 08:17. |