Доброго времени. Никак не могу разобраться, как все-же выводить данные? Работать ну никак не хочет. Вот скрипт: PHP: <? $test = 'Этот текст не отображается'; ?> <div id="content"></div> <script> var t = null; function update() { // Начинаем процесс обновления - отключаем таймер if (t !== null) { clearTimeout(t); t = null; } // Грузим данные $.get('ajax.php') // При успешной загрузке... .done(function(content) { // ...скрываем старый блок $('#content').fadeOut('slow', function() { $(this) .html(content) // Пока он скрыт - меняем его содержимое,.. .fadeIn('slow'); // ...после чего показываем }); }) // Успешно, не успешно ли был загружен файл - ставим новый таймер на вызов функции обновления .always(function() { t = setTimeout(function() { update(); }, 5000); }); } update(); </script> а вот скрипт, который подгружается: PHP: <? echo $test; ?> <br> Обычный текст так вот, переменная должна передаваться в ajax.php, а она не передается... Еще никак не могу избавиться от плавного появления и исчезания текста =( Подскажите пожалуйста, как уговорить отображать переменные?
Это ведь два независимых скрипта. Откуда в ajax.php возьмется $test? Это неопределенная переменная. --- Добавлено --- Выведите $test в первом скрипте, тогда ничего дополнительно подгружать будет ненужно.
На первой страничке емеется значение в переменной. Это значение яхочу передать в файл ajax.php, а вот файл ajax.php по этой тепеменной будет делать выборку с базы данных и выводить на страничку постоянно свежую информацию. Вычитала, что вроде методом POST или GET это реально. Немного изменила скрипт: PHP: <? $_POST['test'] = 'Переменная'; ?> <div id="result"></div> <script type="text/javascript"> $(function() { (function worker() { $.ajax({ url: 'ajax.php', method: 'POST', data: {'test':'test'}, success: function(data) { $('#result').html(data); }, complete: function() { setTimeout(worker, 1000); } }); })(); }); </script> а вот файл ajax.php PHP: <? echo $_POST['test']; //не выводится ?> Что-то не получается переменную передать в ajax.php =(
Используй консоль f12, так выглядит в хроме. Смотри уходит ли запрос, что он получает, что он отвечает. По хорошему для нужно обернуть в проверку на AJAX и в случае если это так по после echo exit(); Иначе в ответ пойдёт все что ниже.
В общем пока удалось одну переменную передать. Вот код: PHP: <? $test = 'Переменная1'; $test2 = 'Переменная2'; ?> <div id="result"></div> <script type="text/javascript"> $(function() { (function worker() { $.ajax({ url: 'ajax.php', method: 'POST', data: {'test':'<? echo $test;?>'}, success: function(data) { $('#result').html(data); }, complete: function() { setTimeout(worker, 1000); } }); })(); }); </script> а вот ajax.php PHP: <? echo 'Вывод параметра 1 = '. $_POST['test'] .', Вывод параметра 2 = '. $_POST['test2']; ?> Как переменную $test2 туда же передать? =)
@Sofia, пока вы не выведите значение на пыхе в первом скрипте, оно не попадет клиенту. Соответственно, с клиента вы его отправить не сможете.
PHP: <div id="result"> <form> <input type="hidden" name="vars[]" value="<?= $test ?>" > <input type="hidden" name="vars[]" value="<?= $test2 ?>" > </form> </div> <script> $.ajax({ ..., data: $('form').serialize(); }); </script>
...пока запостил, вы уже сделали. См., в data можно передавать и несколько пар ключ-значение (ключ вроде в кавычки не обязательно брать). --- Добавлено --- Это более сложный вариант. Там можно же и в JSON передавать. --- Добавлено --- И POST же позволяет передавать параметры не только в URL-формате
Рано радовалась. На тестовой, пустой страничке работало... Код перенесла на основкую страничку, так не работает =(
ну на отдельной тестовой страничке же работает как есть... А переношу на рабочую страничку, так даже POST запросы не уходят. Мне кажется что с чем-то конфликтует... Беда прям... Ищу вот... но пока без результатно =(
Проверьте доступность php-обработчика по целевому адресу. Наверное, будет лучше использовать абс. адрес, например /ajax.php --- Добавлено --- Если реально ДАЖЕ НЕ УХОДЯТ, то чего-то не хватает на клиенте, например связи события с JS-обработчиком.