Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Странная работа jQuery
 
 автор: trivium   (26.05.2016 в 05:24)   письмо автору
 
 

Всем привет.
Делаю сайт и на нём очень много всякого JS с глюками.
Какую-то часть смог упорядочить, а какую-то ещё предстоит только.
Но вот странный баг появился. Делаю AJAX-запрос на сервар через jQuery:
        $.post("/ajax/getdata.php", {pricefrom: $("#pf-from").val(), priceto: $("#pf-to").val(), brand: brandid, cat: categoryid}, function(data)
        {
                alert(data);
            $("#list").html(data);
        });


Запрос уходит на сервар в Firebug показывается, что всё прошло успешно, получен HTML в ответ, но функция success не запускается, как не запускается и функция fail, ошибок никаких не выводится. Пробовал оборачивать в try catch, делать через функцию ajax, get, но всё так же само. В чём может быть проблема и как исправить?

  Ответить  
 
 автор: confirm   (26.05.2016 в 10:32)   письмо автору
 
   для: trivium   (26.05.2016 в 05:24)
 

Какая вам нужна success, если в методе $.post callback это третий параметр метода, function(data)? Если ответ сервера точно есть, то это и будет data.

  Ответить  
 
 автор: Trivium   (26.05.2016 в 15:24)   письмо автору
 
   для: confirm   (26.05.2016 в 10:32)
 

Так не вызывается эта фукнция. Сервер всё правильно возвращает, но функция не вызывается. alert оттуда никогда не выскакивает.

  Ответить  
 
 автор: confirm   (26.05.2016 в 15:55)   письмо автору
 
   для: Trivium   (26.05.2016 в 15:24)
 

<?php
if($_POST) exit('Ok')
?> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script> 
$(function() {
    $('form').submit(function(e) {
        e.preventDefault();
        $.post(location, $(this).serialize(), function(data) { 
            if(!!data) alert(data); 
        });        
    })
});
</script>     
</head> 
<body>
<form>
<input name="pricefrom" />
<input name="priceto" />
<input type="submit" value="GO" />
</form>
</body> 
</html>


Сохраните этот код на локальном сервере под любым именем и запустите его. Все выскакивает? А коли у вас не выскакивает, значит есть ошибки. Ajax обработчик ошибок можно установить и глобально для всех ajax-методов JQ. Проверяйте.

  Ответить  
 
 автор: Trivium   (26.05.2016 в 16:58)   письмо автору
 
   для: confirm   (26.05.2016 в 15:55)
 

Так у меня дело в другом. Где-то есть ошибки JS, но часть AJAX выполняется, а часть нет. Исполнение JS прерывается. Вот и надо понять как сделать так, чтобы оно не прерывалось и на функции success тоже.

  Ответить  
 
 автор: confirm   (27.05.2016 в 10:57)   письмо автору
 
   для: Trivium   (26.05.2016 в 16:58)
 

Я вам и сказал - ищите ошибки у себя, а не ищите в коде, в котором нет ошибок.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования