|
|
|
| Хочу сделать первый шаг в использовании Ajax. И очень нужен самый простой пример.
Пусть в рнр-скрипте есть переменная
$primer = '<p><font color="#008000">Пример вывода</font> <font color="#FF00FF">посредством
Ajax</font></p>';
|
Что конкретно нужно сделать, что бы на мониторе появилось соответствующее сообщение? | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 12:24)
| | Проще всего воспользоваться специальными библиотеками. Например jquery:
<div id="content"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
$.get('путь-к-скрипту', function(data){
// в переменной data находится ответ от скрипта
$('#content').html(data);
});
</script>
|
PHP-скрипт, в свою очередь, должен сделать print $primer; | |
|
|
|
|
|
|
|
для: Саня
(28.10.2009 в 12:31)
| | То есть, страница, на которой выводится сообщение, в обязательном порядке всегда обращается к сайту googleapis.com?
И, стало быть, без интернета, на Денвере, работать не будет? | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 13:44)
| | на гугле скрипт библиотеки - скачайте ее себе и поставьте соответствующий путь.
на денвере будет работать | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 12:24)
| | советую почитать вот эту книгу http://www.books.ru/shop/books/429052 там много примеров как простых так и посложнее и дотошно объясняется каждая строчка кода | |
|
|
|
|
|
|
|
для: psychomc
(28.10.2009 в 13:21)
| | Спасибо, книга иетересная. Есть у меня еще и "Ajax в действии", но от бумаги к коду переход никак не удается... | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 13:39)
| | Файл 1.php содержит:
<?php
$data = '<p><font color="#008000">Пример вывода</font> <font color="#FF00FF">посредством
Ajax</font></p>';
?>
|
Файл 2.php содержит:
<html>
<head>
<title></title>
</head>
<body>
<div id="content"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
$.get('1.php', function(data){
// в переменной data находится ответ от скрипта
$('#content').html(data);
});
</script>
</body>
</html>
|
Запускаю файл 2.php - монитор девственно чист...
Что же здесь неверно? | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 14:30)
| | Я гугловской библиотеки не знаю, но попробуйте в 1.php поставить echo
<?php
echo $data = '<p><font color="#008000">Пример вывода</font> <font color="#FF00FF">посредством
Ajax</font></p>';
?>
|
| |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 12:24)
| | я не пользуюсь сторонними библиотеками, сам код написал, тут можно посмотреть рабочий пример. | |
|
|
|
|
|
|
|
для: Lelik
(28.10.2009 в 14:38)
| | Спасибо, но для меня это чрезвычайно сложно. Может быть, понимание придет позже.
Тут хоть бы что-нибудь увидеть на мониторе!
Вот почему у меня не работает простейший пример, приведенный выше? | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 14:44)
| | я не пользуюсь сторонними библиотеками :)
а по ссылке пример рабочий, надо токолько верхний код сохранить в файл или записать между тегами <script></script> и ниже по тексту описано как его применять | |
|
|
|
|
|
|
|
для: Lelik
(28.10.2009 в 14:45)
| | В 1.php поставил echo
<?php
echo $data = '<p><font color="#008000">Пример вывода</font> <font color="#FF00FF">посредством
Ajax</font></p>';
?>
|
В 2.php добавил кодировку
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
</head>
<body>
<div id="content"></div>
<script src="jquery.min.js"></script>
<script>
$.get('1.php', function(data){
// в переменной data находится ответ от скрипта
$('#content').html(data);
});
</script>
</body>
</html>
|
На экране появилось хоть что-то. А именно:
�����font> ��� Ajax
|
Причем вот это
написал сам форум, а у меня на этом месте прямоугольнички. | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 14:50)
| | Везде укажите кодировку UTF-8 и все файлы сохраните в UTF-8 | |
|
|
|
|
|
|
|
для: coloboc66
(28.10.2009 в 15:02)
| | А в windows-1251 это нельзя осуществить? | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 15:05)
| | Можно, но нужно помудохаться. Ищите, как в этой библиотеке включить вин1251. Аякс рассчитан на Юникод. Пора уходить от вин1251, потом всё-равно начнутся проблемы с XML. | |
|
|
|
|
|
|
|
для: coloboc66
(28.10.2009 в 15:10)
| | Коли так, то можно попробовать и в UTF-8.
Но что конкретно надо сделать? Как это "Везде укажите кодировку UTF-8 и все файлы сохраните в UTF-8"?
В файле 1.php всего одна строка - как там указать кодировку?
И что значит "сохраните в UTF-8"? Для меня сохранить - это нажать на панели редактора кнопку "Сохранить". А что ещё? | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 15:18)
| | 1раз открыть блокнотом - сохранить как. там есть выбор кодировки | |
|
|
|
|
|
|
|
для: AlexSol
(28.10.2009 в 15:23)
| | Блокнотиком поработал. Заодно, изменил шапку второго файла вот таким образом:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
|
Теперь не выводит на экран вообще ничего!.. | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 15:32)
| | 1. Во ВСЕХ взаимодействующих файлах (1.php и 2.php) поставить такой заголовок:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
|
2. Каждый взаимодействующий файл открыть блокнотом и пересохранить, выбрав в опциях сохранения кодировку UTF-8
3. В .htaccess тоже не помешало бы указать adddefaultcharset UTF-8
А вот это:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
УБРАТЬ. | |
|
|
|
|
|
|
|
для: coloboc66
(28.10.2009 в 15:40)
| | Всё выполнил в точности, за исключением корректировки файла .htaccess.
При вызове файла 2 монитор ничего не показывает (пуст).
Внес изменения в файл .htaccess. Теперь там такая информация:
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html
defaultcharset UTF-8
|
В итоге при вызове страницы получаю сообщение: "Internal Server Error" | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 15:51)
| | Ну тогда пока уберите из htaccess все новые записи (defaultcharset UTF-8), а в файле 1.php кириллицу в переменной замените на латиницу. В браузере проверьте кодировку: Главное меню - Вид - кодировка - UTF-8
Что теперь на странице? | |
|
|
|
|
|
|
|
для: coloboc66
(28.10.2009 в 16:04)
| | Из htaccess новые записи убрал, кириллицу заменил латиницей. Не выводится ничего.
Кодировка в браузере - "мутный" юникод. Мутный в том смысле, что для всех других кодировок (когда они есть), стоит черная жирная точка. А здесь точка мутная, как бы погашенная. | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 16:17)
| | Тогда не знаю, в чём у вас проблема. Попробуйте в другом браузере. | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 16:17)
| | проблема в 1.php
создайте его с нуля в блокноте например. Никакой аякс не заработает пока этот файл не выводит в драузер требуемый текст | |
|
|
|
|
|
|
|
для: AlexSol
(28.10.2009 в 16:31)
| | Логично. А он что - не выводит? В самом деле, просто зайдите браузером на 1.php Что видите? | |
|
|
|
|
|
|
|
для: AlexSol
(28.10.2009 в 16:31)
| | Я и сам это предположил, и чуть ранее создал блокнотом ОБА файла заново в кодировке юникод, а потом перенес туда необходимое программное содержимое. Результата никакого - браузер воспринимает это как "серый" юникод.
Это если использовать ИЕ8. В ИЕ 7 и в ИЕ6 тоже самое.
И тоже самое в ФФ.
Опера не видит юникод, а просто показывает кириллицу и выводит белиберду
Пример вывода посредством Ajax
'; echo $data = '
ASTREW Ajax
'; ?>
|
Получается, что юникод - это такая морочная вещь, что связываться с ним без веской причины мне нет никакого смысла. То ли дело 1251 - любым редактором и без всяких блокнотов!
В этой связи хотелось бы вернуться к прежней посылке - как воспользоваться Ajax с кодировкой 1251?
Может, есть какая-то другая библиотека? | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 16:52)
| | Как хотите. На сайте Денвера есть библиотека Котерова.
А UTF-8 - незаменимая вещь!!! Я бы на вашем месте с ней всё-же разобрался - очень пригодится. и никакой там мороки нет.
Создайте 1.рнр в юникоде и зайдите на него без аякса браузером. Если кириллица в переменной читается - всё должно получиться. | |
|
|
|
|
|
|
|
для: coloboc66
(28.10.2009 в 17:05)
| | Вероятне всего, Вы правы.
Знаете, когда торопишься и хочешь получить результат прямо сейчас, да еще с учетом множества неудачных попыток, то мнение может сформироваться ошибочное.
Так что я еще поразмышляю над этой темой (UTF-8).
А как лично Вы создаете файлы под эту кодировку? Что, каждый раз начинаете с блокнота? Или есть какой-то специальный редактор для этой цели? | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 17:25)
| | Я ВСЕ файлы пишу в текстовом редакторе AkelPad - это аналог блокнота, но покруче, поддерживает кучу всяких кодировок, считает строки и символы и ещё всякие прибамбасы. Лёгкий, компактный и бесплатный, найдёте в поисковике. | |
|
|
|
|
|
|
|
для: coloboc66
(28.10.2009 в 17:41)
| | Однако рнр эксперт эдитор поудобнее будет, верно? | |
|
|
|
|
|
|
|
для: Владимир55
(28.10.2009 в 17:57)
| | Не знаю, не пользовался. | |
|
|
|
|
|
|
|
для: coloboc66
(28.10.2009 в 17:59)
| | А если файл создается рнр-скриптом, то можно ли задать ему кодировку UTF-8 ? | |
|
|
|
|
 19.2 Кб |
|
|
для: Владимир55
(28.10.2009 в 12:24)
| | > То есть, страница, на которой выводится сообщение,
> в обязательном порядке всегда обращается к сайту googleapis.com?
Нет. Чтобы работать с библиотекой jquery (официальный сайт http://jquery.com/) сначала её нужно подключить. Этого можно достичь несколькими способами:
1. Скачать файл с библиотекой с официального сайта к себе на сайт и подключить при помощи конструкции <script src="/путь/к/jquery.js"></script>
2. Воспользоваться сервисом доставки контента от гугла. Про CDN (Content Delivery Network) полно информации в интернете. Например тут: http://webo.in/articles/all/2009/29-why-cdn/
> На экране появилось хоть что-то ... а у меня на этом месте прямоугольнички.
Данные от скрипта к браузеру, запрошенные посредством AJAX-запроса, должны передаваться в кодировке UTF-8. Достаточно будет сохранить PHP скрипт в этой кодировке. Либо сделать "print iconv('WINDOWS-1251', 'UTF-8', 'данные');" в скрипте. | |
|
|
|
|
|
|
|
для: Саня
(28.10.2009 в 18:34)
| | Дело пояснилось, и всё прекрасно заработало!
Наконец-то от чтения удалось перейти к рабочему коду!
Большое Вам спасибо! | |
|
|
|