|
|
|
| Вот решил уж занятся исследованием работ аякс и пхп
в этих делах не мало тонкостей которых я бы хотел тут раскрыть
1, какие файлы не обхадимо иметь чтоб аякс работал на странице?
2, Лучшая книга которую вы советуете для изучения аякс и пхп?
3, Простой пример нужен чтоб при нажатии на ссылку инклудировался файл на страницу
ВСЕ ТЕ КТО ЗНАЮТ АЯКС И ПХП, ЗНАТОКИ ЭТОГО ДЕЛА ПОМОГИТЕ В ЭТИХ ДЕЛАХ И НАМ РАЗОБРАТЬСЯ!!!!!!! | |
|
|
|
|
|
|
|
для: ozono
(30.12.2006 в 10:47)
| | код запроса к серверу (отправки данных - методы open() и send() объекта XMLHTTPRequest) и вывода данных от сервера на страницу (свойство responseText или responseXML объекта XMLHTTPRequest) пишется на ява-скрипт . РНР-скрипт занимается обработкой полученных от броузера данных и отправкой ответа броузеру (например echo $file). | |
|
|
|
|
|
|
|
для: coloboc66
(30.12.2006 в 11:03)
| | Тема называется PHP и JS функции тут http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=27790&page=1
Я там дал человеку пример как делать фоновые запросы без HTTPRequest на чва и пхп.
Я много писал раньше локально на C++ под XMLServer и HTTPRequest. Позже винда получила новый элемент WinHTTP он намного круче стал чем предыдущие. Но это все только если у юзера есть эти контролы. Плюс очень трудно включить разрешения на их использование в IE. Поэтому goto в тему, которую я указал и смотрим как делать типа AJAX но без этих контролов. | |
|
|
|
|
|
|
|
для: XPraptor
(31.12.2006 в 04:43)
| | спасибо! может все таки несколько примеров мы сможем тут обсудить????
было бы классно с примером вместе! | |
|
|
|
|
|
|
|
для: ozono
(02.01.2007 в 20:51)
| | В принципе, метод банален и прост. Ява скрипт умеет загружаться из файла с любым расширением. Поэтому можно это использовать. Мы именно яваскриптом же создаем код ява скрипта с url нужного нам php файла на сервере. А на сервере уже творим что хотим. Единственное, когда закончим на сервере обработку, то в конце в выдачу не забываем дописать ява код, который уже придя к клиенту выполнится и вставит результаты обработки в нужное место. Когда ява скрипт подгружается из внешнего файла, он не перегружает страницу этим мы и пользуемся ИМХО, просто как лыжи. | |
|
|
|
|
|
|
|
для: XPraptor
(03.01.2007 в 17:38)
| | вот например я хочу чтоб при нажатии ссылки http://test1.ru/?file=test.txt
хотелось бы чтоб инклудировался файл test.txt без обновления!!
помогите чтоб мне была ясна эта технология!!!!! | |
|
|
|
|
|
|
|
для: ozono
(08.01.2007 в 14:00)
| | Да что угодно можете выводить. Идите в тему которую я указал выше и берите код ява файла.
Когда ява отправит запрос к вашему обработчику - файлу php, в нем вы и инклюдите файл.
Вот примерный код вашего обработчика - файла php:
<?php
if(isset($_GET["file"]) && !empty($_GET["file"]))
{
//если файл лежит в корне то пишем путь к нему, или любой другой путь
$flname=$_SERVER["DOCUMENT_ROOT"] . "/" . strval($_GET["file"]);
$file_text=file_get_contents($flname);
//теперь текст файла в этой переменной, именно ее мы и будем вставлять на страницу
//если в файле нет html тэгов то можно просто присвоить элементу в который вставляем как innerText.
//если есть html тэги, то нужно вставить методом insertAdjacentHTML
?>
//это ява скрипт, который придя к клиенту вставит ваш текст в указанный элемент (например div, или td) с id="insert_here" (который должен быть прописан в вашей странице заранее)
//получаем элемент по его ИД:
var elm=document.GetElementByID("insert_here");
//можно предварительно очистить уже имеющийся там текст вот так:
elm.InnerHTML="";
//теперь вставляем html
elm.insertAdjacentHTML "beforeEnd", '<?php print html_entity_decode($file_text); ?>';
//или просто присвоим текст:
elm.innerText='<?php print $file_text; ?>';
<?php
}
?>
|
| |
|
|
|
|
|
|
|
для: XPraptor
(08.01.2007 в 17:30)
| | при выполнении того кода что Вы сказали и + мое дополнение
<a href="?file=file.txt">FILE</a>
<br><br><br>
<div id="insert_here">DIV PLACE</div>
<?php
if(isset($_GET["file"]) && !empty($_GET["file"]))
{
$flname=$_SERVER["DOCUMENT_ROOT"] . "/" . strval($_GET["file"]);
$file_text=file_get_contents($flname);
?>
var elm=document.GetElementByID("insert_here");
elm.InnerHTML="";
elm.insertAdjacentHTML "beforeEnd", '<?php print html_entity_decode($file_text); ?>';
elm.innerText='<?php print $file_text; ?>';
<?php
}
?>
|
получается вот такая вешь на странице:
----------------------------------------------------------------------------
FILE
DIV PLACE
var elm=document.GetElementByID("insert_here"); elm.InnerHTML=""; elm.insertAdjacentHTML "beforeEnd", 'READ=======vnutrennost fayla txt!!!!!!!!!!'; elm.innerText='READ=======vnutrennost fayla txt!!!!!!!!!!';
----------------------------------------------------------------------------
внутри файла тхт у меня вот это (READ=======vnutrennost fayla txt!!!!!!!!!!)
может джаву вписать в эти теги <script> </script> ???????
что то все не так?!
подскажи как дальше быть................ | |
|
|
|
|
|
|
|
для: XPraptor
(08.01.2007 в 17:30)
| | Будут ли новые ответы??? скажите что не так в скрипте что в страничке даже джава коды видны!? | |
|
|
|
|
|
|
|
для: ozono
(10.01.2007 в 11:38)
| | Ну а вы заключили ява-скрипты в соответствующие теги? И как вы их вызываете? | |
|
|
|
|
|
|
|
для: coloboc66
(10.01.2007 в 14:10)
| | если вы можете поправить поправте плиз..... я постралася включить в теги <script> и чтоб далее ее вызвать ссылкой .... но у меня ничего не получилось
ну короче вот так
<a href="#" onClick="zz()">FILE</a>
<br><br><br>
<div id="insert_here">DIV PLACE</div>
<?php
$flname="file.txt";
$file_text=file_get_contents($flname);
?>
<script>
function zz(){
var elm=document.GetElementByID("insert_here");
elm.InnerHTML="";
elm.insertAdjacentHTML "beforeEnd", '<?php print html_entity_decode($file_text); ?>';
elm.innerText='<?php print $file_text; ?>';
}
</script>
|
выдает ошибку
как исправить все это??? | |
|
|
|
|
|
|
|
для: XPraptor
(08.01.2007 в 17:30)
| | что я не так сдела???? помогите?!!!!!! | |
|
|
|
|
|
|
|
для: ozono
(12.01.2007 в 14:36)
| | У вас тут аяксом и не пахнет. Вам же писали: идите в соответствующую тему и возьмите оттуда код для аякса.
Алгоритм примерно таков:
Файл index.htm
<a id="1" href="#" onClick=ajax("file.php?file="+this.id)>FILE</a>
<br><br><br>
<div id="insert_here">DIV PLACE</div>
<script>
function ajax(url)
{
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
req.onreadystatechange = function { if (req.readyState == 4) { zz(); } }
req.open("GET", url, true);
req.send(null);
}
else if (window.ActiveXObject)
{
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = function { if (req.readyState == 4) { zz(); } }
req.open("GET", url, true);
req.send();
}
}
}
function zz(){
var elm=document.GetElementByID("insert_here");
elm.InnerHTML="";
elm.innerText=req.responseText;
}
</script>
|
Файл file.php
<?php
$flname=$_SERVER["DOCUMENT_ROOT"] . "/" . strval($_GET["file"]);
$file_text=file_get_contents($flname);
print html_entity_decode($file_text);
?>
|
Вы пытаетесь с налету написать код для аякса, даже не поняв сути аякса. | |
|
|
|
|
|
|
|
для: coloboc66
(13.01.2007 в 10:31)
| | Спасибо....... вы поймите я так много прочтал по аякс и совсем разное применил что голова трещит........
вот например есть ajax , есть sajax, есть xajax не знаю на чем правильно остановиться и что делать!!!!!
я шас пишу работая модулем саякс но вот хочется видеть много примеров и понять удобство и разницу этих трех вещей!
прошу не сердится и помочь мне в этом. Я сам программирую на пхп и думаю пора мне выбрать так начем из этих трех работать зная что основа всего аякс!
я проверю все что вы дали и напишу если что не так.............
заранее благодарю за терпение | |
|
|
|
|
|
|
|
для: ozono
(13.01.2007 в 20:19)
| | ajax, sajax, xajax - херота это все. Есть 15 строк кода, и все будет работать.
Смотрите выше - там все написано. | |
|
|
|
|
|
|
|
для: coloboc66
(14.01.2007 в 00:27)
| | Люди Люди!!!!
Я не понимаю почему это аякс????? Это же обычный ява скрипт
Я это дело называю динамической подкачкой данных(ДПД)
Кто то ляпнул аякс и пошло поехало, называйте вещи своими словами...
тут попросту используется Microsoft.XMLHTTP - стандартная виндовая штука, у которой есть методы и свойства | |
|
|
|
|
|
|
|
для: himic
(15.01.2007 в 11:24)
| | и что ты называешь аякс и как решить это дело с помощью твоего аякса????
даш пример? | |
|
|
|
|
 8 Кб |
|
|
для: ozono
(15.01.2007 в 11:27)
| | Вот библиотека одного мэна(файл прикриплён) я её чуть подстрогал, чтобы всё выглядело просто
Закидывайте в любое место и пользуйтесь и изменяйте на здоровье | |
|
|
|
|
|
|
|
для: himic
(15.01.2007 в 11:32)
| | И кто там пример давал??
там полно ошибок, к регистру между прочем чувствительны методы | |
|
|
|
|
|
|
|
для: himic
(15.01.2007 в 11:32)
| | Хорошо подстрогали.... так, что без пароля закинуть можно разве что в трэш... | |
|
|
|
|
|
|
|
для: Trianon
(15.01.2007 в 11:57)
| | пардон братья, пароль 123 ;D
Вот совсем простой пример, сам токо что накалякал
есть текстовое поле, вводите текст и этот текст записывается в файл(только для IE)
можно поэксперементировать с созданием объектов
request = new XMLHttpRequest()
request = new ActiveXObject("Microsoft.XMLHTTP")
request = new ActiveXObject("Msxml2.XMLHTTP")
А можно сделать и все сразу три по условию и это будет для всех браузеров | |
|
|
|
|
|
|
|
для: himic
(15.01.2007 в 12:55)
| | AJAX - это action java script + XMLHTTPRequest. Все правильно называется - аякс. | |
|
|
|
|
|
|
|
для: coloboc66
(15.01.2007 в 13:59)
| | типа по первым буквам???!!!!!
тогда я уже озвучил своё название ДПД
я люблю русский язык | |
|
|
|
|
|
|
|
для: himic
(15.01.2007 в 15:04)
| | А я почему то думал что AJAX - это Asynchronic Javascript and XML | |
|
|
|
|
|
|
|
для: malish
(15.01.2007 в 15:28)
| | to malish: может быть и так - принципиальной разницы нет, по-моему. XMLHTTPRequest по определению подразумевает работу с XML - документом. | |
|
|
|
|
|
|
|
для: coloboc66
(15.01.2007 в 15:39)
| | но одним из главных слов тут все таки является Asynchronic - определяющее всю суть данной технологии | |
|
|
|
|
|
|
|
для: malish
(15.01.2007 в 16:15)
| | А чем отличается Asynchronic от обычного ява-скрипт? Принципиальной разницы как-то не увидел. Ставишь true, ставишь false - все одинаково... | |
|
|
|
|
|
|
|
для: himic
(15.01.2007 в 15:04)
| | Я тоже люблю русский язык, но эта аббревиатура изначально англоязычного происхождения и думаю, чтобы избежать недоразумений, в данном случае нужно ее и расшифровывать соответственно. | |
|
|
|
|
|
|
|
для: coloboc66
(15.01.2007 в 15:37)
| | Ну ладно, Бог с этими названиями
Я вот хочу разобраться с этими объектами
request = new XMLHttpRequest()
request = new ActiveXObject("Microsoft.XMLHTTP")
request = new ActiveXObject("Msxml2.XMLHTTP")
|
Почитать может что про них, они как бы одно и тоже, только для разных браузеров? | |
|
|
|
|
|
|
|
для: himic
(16.01.2007 в 07:33)
| | Да -одно и то же, только для разных броузеров. Два последних для ИЕ. | |
|
|
|
|
|
|
|
для: coloboc66
(16.01.2007 в 09:15)
| | Вот, теперь нужно узнать что они могут эти объекты
open
send
........
Если что я пытаюсь тему развить... | |
|
|
|
|
|
|
|
для: himic
(16.01.2007 в 09:22)
| | open() - открыть соединение с сервером
send() - отправить данные на сервер | |
|
|
|
|
|
|
|
для: coloboc66
(16.01.2007 в 09:59)
| | Поехало!
readyState
0 = uninitialized
1 = loading
2 = loaded
3 = interactive
4 = complete
abort()
Прервать запрос
getAllResponseHeaders()
Возвращает заголовки результата
X-Powered-By: PHP/5.2.0 Content-Length: 7 Keep-Alive: timeout=5, max=99 Content-Type: text/html
getResponseHeader("headerLabel")
Возвращает заголовок по метке
setRequestHeader("label", "value")
Назначает метка/переменная в запросе
onreadystatechange
Это свойство - хендлер события, которое запускается всякий раз, когда меняется состояние объекта
status
HTTP статус ответа - код 404 означает "файл не найден" и 500 - "произошла ошибка на сервере". Но нам нужен старый добрый код 200 ("все ОК"), который означает, что на сервере наш запрос был успешно выполнен.
responseText - возвращает результат
responseXML - фиг его не знает как им пользоваться | |
|
|
|
|
|
|
|
для: himic
(16.01.2007 в 12:32)
| | спасибо....... мне понравилось все это .... все работает........ я проверил твой скрипт и под мозилу классно работает................ помоги мне со своими знаниями..........
очень нужна твоя помощь........ чтоб и до меня дошло как пользоваться что делать какие данные и как отправляются
вот что в принципе надо:
у меня есть ссылка <a href="#" onClick="link('text')">FILE</a> после нажатии чтоб скрипт прочитал файл text.txt и вставил бы прочитанное в <div id="insert_here">DIV PLACE</div> без перезагрузки страницы............................................... и так далее зависимости что внутри link('text')
|
| |
|
|
|
|
|
|
|
для: ozono
(16.01.2007 в 14:03)
| | Чуть помучался, держи, надеюсь разберёшь | |
|
|
|
|
|
|
|
для: himic
(16.01.2007 в 14:39)
| | Вот приложил пример с детальными описаниями. Распакуй всю папку jvs на свой виртуальный сервер в какой нить сайт и вызови тестовый файл со своего хоста например: http://www.virt_host.ru/jvs/test.html
Перед этим в файлах urljava.js и phpreader.php замени пути к твоему виртуальному хосту, там они в комментах прописаны где нужно менять. | |
|
|
|
|
|
|
|
для: XPraptor
(17.01.2007 в 05:15)
| | Я так понял это уже по-ходу вообще другой метод подгрузки - вставкой тэга скрипт
но если его использовать по таймауту, например в чате, то при следующем вызове он не будет дожидаться пока будут загружены предыдущие данные
ну наверное зато надёжно - работает во всех браузерах | |
|
|
|
|
|
|
|
для: himic
(16.01.2007 в 12:32)
| | responseXML - возвращает результат в виде XML- документа, в то время как responseText возвращает результат в текстовом виде. Вот и вся разница, насколько я понимаю. | |
|
|
|
|
|
|
|
для: coloboc66
(17.01.2007 в 09:40)
| | to: himic
Именно. Это как раз кросплатформенный метод для простых задач фоновой подгрузки. Если задача очень круто стоит, то нужно юзать полный AJAX через XMLHTTPRequest, а все остальное делается прекрасно этим методом безо всяких дополнительных контролов.
А так пользователю постоянно нужно выводить предупреждение о не готовности его системы к использованию сайта, а пользователи этого не любят - и почти с 99% вероятностью уйдут с такого сайта. | |
|
|
|
|
|
|
|
для: XPraptor
(17.01.2007 в 11:26)
| | to:XPraptor
у обычных пользователей по статистике, стоит Экспроллер у более таких Опера
у этих браузеров проблем вроде никаких нет, всё по умолчанию работает
Вот с ФайырФоксом проблемы, нужно разрешить использование этих объектов- вот с ними и возникает проблема...блин могу сказать
Тут статистика>>>> http://zero.kz/graph/browser/ | |
|
|
|
|
|
|
|
для: himic
(17.01.2007 в 13:19)
| | По-моему тоже: у основных браузеров (ИЕ и Опера) нет особых проблем с XMLHTTPRequest.
to XPraptor: и все же смею утверждать, что ваш последний архив совершенно не есть аякс. | |
|
|
|
|
|
|
|
для: coloboc66
(17.01.2007 в 13:39)
| | to: coloboc66
Млина ты читаешь топики? Я что говорю что это аякс? Наоборот я говорю что аякс нужен очень редко ,он громоздкий, плюс не кроссовый, а это решение безо всяких аяксов и очень короткое годится для 96% задач, которые нужны для фоновой подгрузки.
to: hmic
Нету в виндах младше 2000 sp3 - xml библиотек, только после доустановки. Поэтому там вообще работать не будет ни в одном браузере. | |
|
|
|
|
|
|
|
для: XPraptor
(17.01.2007 в 14:16)
| | ту: XPraptor
>>Нету в виндах младше 2000 sp3 - xml библиоте
Ну ничё, скоро младше уже и не останется систем
А что ты скажешь насчёт других систем, они там есть?
Да насчёт того, что в методе "вставки скрипта" нельзя засечь, когда данные приняты и можно начинать приём/отправку следующих
Я тут подумал, а ведь можно поставить флаги, данные отправлены и приняты, с сервера должен будет придти ответ: я принял, всё...следущая партия
ПС Админам: даёте постраничную навигацию??????!!!!!!!!!!! | |
|
|
|
|
|
|
|
для: himic
(17.01.2007 в 14:45)
| | Читаю я вот ваши посты... вы сами то помните с чего то весь базар пошел? :):):) | |
|
|
|
|
|
|
|
для: malish
(17.01.2007 в 14:51)
| | to: himic
Почему нельзя засечь то? Делай себе любого вида засекатель и отправляй по очереди. НО ИМХО не понимаю для чего, наоборот хорошо когда все движется асинхронно. Конечный вывод добавляет результаты в конец div-a, имхо отправляй несколько запросов, даже если один из них выполниться раньше чем предыдущий, и выведется перед ним, тут никакого страха нет по идее. Если речь про чат - то тут наверное нужно следить, хотя тоже разницы нет каким по счету увиит пользователь ответ от товарища. | |
|
|
|
|
|
|
|
для: himic
(17.01.2007 в 14:45)
| | >ПС Админам: даёте постраничную навигацию??????!!!!!!!!!!!
Под новые вопросы просто лучше заводить новые темы... | |
|
|
|
|
|
|
|
для: cheops
(17.01.2007 в 15:29)
| | А вот в ФайырФоксе по умолчанию не разрешено использовать XMLHttpRequest,
хотя он создаётся и на запрос
if(window.XMLHttpRequest) он выдаёт что всё ништяк
как разрешить это, как узнать что подгрузка данных запрещена? | |
|
|
|