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

HTML+CSS+JavaScript

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

 

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

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

тема: Самый-самый простой пример на Ajax
 
 автор: Владимир55   (28.10.2009 в 12:24)   письмо автору
 
 

Хочу сделать первый шаг в использовании Ajax. И очень нужен самый простой пример.

Пусть в рнр-скрипте есть переменная
$primer = '<p><font color="#008000">Пример вывода</font> <font color="#FF00FF">посредством 
Ajax</font></p>';


Что конкретно нужно сделать, что бы на мониторе появилось соответствующее сообщение?

  Ответить  
 
 автор: Саня   (28.10.2009 в 12:31)   письмо автору
 
   для: Владимир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;

  Ответить  
 
 автор: Владимир55   (28.10.2009 в 13:44)   письмо автору
 
   для: Саня   (28.10.2009 в 12:31)
 

То есть, страница, на которой выводится сообщение, в обязательном порядке всегда обращается к сайту googleapis.com?

И, стало быть, без интернета, на Денвере, работать не будет?

  Ответить  
 
 автор: AlexSol   (28.10.2009 в 14:02)   письмо автору
 
   для: Владимир55   (28.10.2009 в 13:44)
 

на гугле скрипт библиотеки - скачайте ее себе и поставьте соответствующий путь.


на денвере будет работать

  Ответить  
 
 автор: psychomc   (28.10.2009 в 13:21)   письмо автору
 
   для: Владимир55   (28.10.2009 в 12:24)
 

советую почитать вот эту книгу http://www.books.ru/shop/books/429052 там много примеров как простых так и посложнее и дотошно объясняется каждая строчка кода

  Ответить  
 
 автор: Владимир55   (28.10.2009 в 13:39)   письмо автору
 
   для: psychomc   (28.10.2009 в 13:21)
 

Спасибо, книга иетересная. Есть у меня еще и "Ajax в действии", но от бумаги к коду переход никак не удается...

  Ответить  
 
 автор: Владимир55   (28.10.2009 в 14:30)   письмо автору
 
   для: Владимир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 - монитор девственно чист...

Что же здесь неверно?

  Ответить  
 
 автор: coloboc66   (28.10.2009 в 14:43)   письмо автору
 
   для: Владимир55   (28.10.2009 в 14:30)
 

Я гугловской библиотеки не знаю, но попробуйте в 1.php поставить echo
<?php 
    
echo $data '<p><font color="#008000">Пример вывода</font> <font color="#FF00FF">посредством 
Ajax</font></p>'

?>

  Ответить  
 
 автор: Lelik   (28.10.2009 в 14:38)   письмо автору
 
   для: Владимир55   (28.10.2009 в 12:24)
 

я не пользуюсь сторонними библиотеками, сам код написал, тут можно посмотреть рабочий пример.

  Ответить  
 
 автор: Владимир55   (28.10.2009 в 14:44)   письмо автору
 
   для: Lelik   (28.10.2009 в 14:38)
 

Спасибо, но для меня это чрезвычайно сложно. Может быть, понимание придет позже.

Тут хоть бы что-нибудь увидеть на мониторе!

Вот почему у меня не работает простейший пример, приведенный выше?

  Ответить  
 
 автор: Lelik   (28.10.2009 в 14:45)   письмо автору
 
   для: Владимир55   (28.10.2009 в 14:44)
 

я не пользуюсь сторонними библиотеками :)
а по ссылке пример рабочий, надо токолько верхний код сохранить в файл или записать между тегами <script></script> и ниже по тексту описано как его применять

  Ответить  
 
 автор: Владимир55   (28.10.2009 в 14:50)   письмо автору
 
   для: 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>


На экране появилось хоть что-то. А именно:
&#65533;&#65533;&#65533;&#65533;&#65533;font> &#65533;&#65533;&#65533; Ajax


Причем вот это
&#65533;
написал сам форум, а у меня на этом месте прямоугольнички.

  Ответить  
 
 автор: coloboc66   (28.10.2009 в 15:02)   письмо автору
 
   для: Владимир55   (28.10.2009 в 14:50)
 

Везде укажите кодировку UTF-8 и все файлы сохраните в UTF-8

  Ответить  
 
 автор: Владимир55   (28.10.2009 в 15:05)   письмо автору
 
   для: coloboc66   (28.10.2009 в 15:02)
 

А в windows-1251 это нельзя осуществить?

  Ответить  
 
 автор: coloboc66   (28.10.2009 в 15:10)   письмо автору
 
   для: Владимир55   (28.10.2009 в 15:05)
 

Можно, но нужно помудохаться. Ищите, как в этой библиотеке включить вин1251. Аякс рассчитан на Юникод. Пора уходить от вин1251, потом всё-равно начнутся проблемы с XML.

  Ответить  
 
 автор: Владимир55   (28.10.2009 в 15:18)   письмо автору
 
   для: coloboc66   (28.10.2009 в 15:10)
 

Коли так, то можно попробовать и в UTF-8.

Но что конкретно надо сделать? Как это "Везде укажите кодировку UTF-8 и все файлы сохраните в UTF-8"?

В файле 1.php всего одна строка - как там указать кодировку?

И что значит "сохраните в UTF-8"? Для меня сохранить - это нажать на панели редактора кнопку "Сохранить". А что ещё?

  Ответить  
 
 автор: AlexSol   (28.10.2009 в 15:23)   письмо автору
 
   для: Владимир55   (28.10.2009 в 15:18)
 

1раз открыть блокнотом - сохранить как. там есть выбор кодировки

  Ответить  
 
 автор: Владимир55   (28.10.2009 в 15:32)   письмо автору
 
   для: 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>


Теперь не выводит на экран вообще ничего!..

  Ответить  
 
 автор: coloboc66   (28.10.2009 в 15:40)   письмо автору
 
   для: Владимир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">

УБРАТЬ.

  Ответить  
 
 автор: Владимир55   (28.10.2009 в 15:51)   письмо автору
 
   для: 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"

  Ответить  
 
 автор: coloboc66   (28.10.2009 в 16:04)   письмо автору
 
   для: Владимир55   (28.10.2009 в 15:51)
 

Ну тогда пока уберите из htaccess все новые записи (defaultcharset UTF-8), а в файле 1.php кириллицу в переменной замените на латиницу. В браузере проверьте кодировку: Главное меню - Вид - кодировка - UTF-8
Что теперь на странице?

  Ответить  
 
 автор: Владимир55   (28.10.2009 в 16:17)   письмо автору
 
   для: coloboc66   (28.10.2009 в 16:04)
 

Из htaccess новые записи убрал, кириллицу заменил латиницей. Не выводится ничего.

Кодировка в браузере - "мутный" юникод. Мутный в том смысле, что для всех других кодировок (когда они есть), стоит черная жирная точка. А здесь точка мутная, как бы погашенная.

  Ответить  
 
 автор: coloboc66   (28.10.2009 в 16:25)   письмо автору
 
   для: Владимир55   (28.10.2009 в 16:17)
 

Тогда не знаю, в чём у вас проблема. Попробуйте в другом браузере.

  Ответить  
 
 автор: AlexSol   (28.10.2009 в 16:31)   письмо автору
 
   для: Владимир55   (28.10.2009 в 16:17)
 

проблема в 1.php

создайте его с нуля в блокноте например. Никакой аякс не заработает пока этот файл не выводит в драузер требуемый текст

  Ответить  
 
 автор: coloboc66   (28.10.2009 в 16:46)   письмо автору
 
   для: AlexSol   (28.10.2009 в 16:31)
 

Логично. А он что - не выводит? В самом деле, просто зайдите браузером на 1.php Что видите?

  Ответить  
 
 автор: Владимир55   (28.10.2009 в 16:52)   письмо автору
 
   для: AlexSol   (28.10.2009 в 16:31)
 

Я и сам это предположил, и чуть ранее создал блокнотом ОБА файла заново в кодировке юникод, а потом перенес туда необходимое программное содержимое. Результата никакого - браузер воспринимает это как "серый" юникод.

Это если использовать ИЕ8. В ИЕ 7 и в ИЕ6 тоже самое.

И тоже самое в ФФ.

Опера не видит юникод, а просто показывает кириллицу и выводит белиберду
Пример вывода посредством Ajax

'; echo $data = '

ASTREW Ajax
'; ?>


Получается, что юникод - это такая морочная вещь, что связываться с ним без веской причины мне нет никакого смысла. То ли дело 1251 - любым редактором и без всяких блокнотов!

В этой связи хотелось бы вернуться к прежней посылке - как воспользоваться Ajax с кодировкой 1251?

Может, есть какая-то другая библиотека?

  Ответить  
 
 автор: coloboc66   (28.10.2009 в 17:05)   письмо автору
 
   для: Владимир55   (28.10.2009 в 16:52)
 

Как хотите. На сайте Денвера есть библиотека Котерова.
А UTF-8 - незаменимая вещь!!! Я бы на вашем месте с ней всё-же разобрался - очень пригодится. и никакой там мороки нет.
Создайте 1.рнр в юникоде и зайдите на него без аякса браузером. Если кириллица в переменной читается - всё должно получиться.

  Ответить  
 
 автор: Владимир55   (28.10.2009 в 17:25)   письмо автору
 
   для: coloboc66   (28.10.2009 в 17:05)
 

Вероятне всего, Вы правы.

Знаете, когда торопишься и хочешь получить результат прямо сейчас, да еще с учетом множества неудачных попыток, то мнение может сформироваться ошибочное.

Так что я еще поразмышляю над этой темой (UTF-8).

А как лично Вы создаете файлы под эту кодировку? Что, каждый раз начинаете с блокнота? Или есть какой-то специальный редактор для этой цели?

  Ответить  
 
 автор: coloboc66   (28.10.2009 в 17:41)   письмо автору
 
   для: Владимир55   (28.10.2009 в 17:25)
 

Я ВСЕ файлы пишу в текстовом редакторе AkelPad - это аналог блокнота, но покруче, поддерживает кучу всяких кодировок, считает строки и символы и ещё всякие прибамбасы. Лёгкий, компактный и бесплатный, найдёте в поисковике.

  Ответить  
 
 автор: Владимир55   (28.10.2009 в 17:57)   письмо автору
 
   для: coloboc66   (28.10.2009 в 17:41)
 

Однако рнр эксперт эдитор поудобнее будет, верно?

  Ответить  
 
 автор: coloboc66   (28.10.2009 в 17:59)   письмо автору
 
   для: Владимир55   (28.10.2009 в 17:57)
 

Не знаю, не пользовался.

  Ответить  
 
 автор: Владимир55   (28.10.2009 в 18:13)   письмо автору
 
   для: coloboc66   (28.10.2009 в 17:59)
 

А если файл создается рнр-скриптом, то можно ли задать ему кодировку UTF-8 ?

  Ответить  
 
 автор: Саня   (28.10.2009 в 18:34)   письмо автору
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', 'данные');" в скрипте.

  Ответить  
 
 автор: Владимир55   (29.10.2009 в 00:01)   письмо автору
 
   для: Саня   (28.10.2009 в 18:34)
 

Дело пояснилось, и всё прекрасно заработало!

Наконец-то от чтения удалось перейти к рабочему коду!

Большое Вам спасибо!

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

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