[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Динамическая подгрузка стриницы (Ajax & PHP)
Miha
Разбирался с Аякс, думал что понял, оказалось не так...
Короче при нажатии на ссылку выполняется JS-функция, которая в определенный блок со своим id помещает результат php-скрипта который находится в отдельном файле.

Вот код: index.html (Весь html-код приводить не буду, не вижу смысла)


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>
Test</title>
<link
href="templates/template_01/style.css" rel="stylesheet" type="text/css" />
<script
type="text/javascript" src="Lib/DSJax.js"></script>
</head>
<body>

...
<div id="MainBlog"></div>
...
<a onclick="process()" href=index.php >Главная</a>
...
</body>
</html>



Это файл DSJax.js:

var xmlHttp = createXmlHttpRequestObject();

function createXmlHttpRequestObject()
{
var xmlHttp;
if(window.ActiveXObject)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
xmlHttp = false;
}
}

else
{
try
{
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
xmlHttp = false;
}
}

if (!xmlHttp)
alert("Error creating the XMLHttpRequest object.");
else
return
xmlHttp;
}


function process()
{

var statusElem = document.getElementById('MainBlog');
xmlHttp.open("GET", "/mod/main.php?go=about", true);
xmlHttp.onreadystatechange = function {
if (req.readyState == 4) {
statusElem.innerHTML = xmlHttp.statusText;
if(xmlHttp.status == 200) {
alert("Wow Fuck: "+xmlHttp.responseText);
}
}


xmlHttp.send(null);
statusElem.innerHTML = statusElem;

}


А здесь php-файл main.php

<?php
echo "URA!";
?>


Дело в том что не работает JavaScript - что то из этого xmlHttp, т.к.
alert("..."); в начале функции работает, но если за комментирован

/* xmlHttp.open("GET", "/mod/main.php?go=about", true);
xmlHttp.onreadystatechange = function {
if (req.readyState == 4) {
statusElem.innerHTML = xmlHttp.statusText;
if(xmlHttp.status == 200) {
alert("Wow Fuck: "+xmlHttp.responseText);
}
}

xmlHttp.send(null);*/





Спустя 16 минут, 28 секунд (27.01.2010 - 08:55) twin написал(а):
Как то ты из нескольких собирал, и видать неаккуратно))

if (req.readyState == 4) {

тут так должно быть.
if (xmlHttp.readyState == 4) {

Спустя 9 минут, 25 секунд (27.01.2010 - 09:04) Miha написал(а):
Исправил, все равно не работает! sad.gif
А разве страница должна перезагружаться, она у меня почему то мелькает когда тыкаю на ссылку.

Спустя 23 минуты, 25 секунд (27.01.2010 - 09:28) Семён написал(а):
Цитата (Miha @ 27.01.2010 - 10:04)
Исправил, все равно не работает! sad.gif
А разве страница должна перезагружаться, она у меня почему то мелькает когда тыкаю на ссылку.

Это специфика некоторых браузеров. (ну по крайней мере для картинок)

Спустя 8 часов, 19 минут, 51 секунда (27.01.2010 - 17:47) Miha написал(а):
Вообще ничего не понимаю! mad.gif
Ни один пример у меня еще не заработал!!!, Хотя на сайтах все работает БЛИН!!! mad.gif

Спустя 9 минут, 2 секунды (27.01.2010 - 17:56) arlamar написал(а):
onclick="process(); return false;"


Спустя 10 минут, 7 секунд (27.01.2010 - 18:07) Miha написал(а):
Балин!!! всего лишь из-за одной маленько конструкции такие проблемы! Спасибо тебе человек! wink.gif smile.gif smile.gif smile.gif
А почему ни где в статьях этого не описали???

Спустя 3 минуты, 58 секунд (27.01.2010 - 18:11) Michael написал(а):
Цитата (Miha @ 27.01.2010 - 17:07)
Балин!!! всего лишь из-за одной маленько конструкции такие проблемы! Спасибо тебе человек! wink.gif smile.gif smile.gif smile.gif
А почему ни где в статьях этого не описали???

Это называется основы javascript и уж поверь описаны они много где ... wink.gif

Спустя 42 минуты, 4 секунды (27.01.2010 - 18:53) Miha написал(а):
Когда я передаю параметры из php в JS, короче так:

$res=$res.'<a href="" onclick="makeAJAXCall(); return false;">'.$s[0].'</a><br>';


В этом скрипте мне надо передать параметр функции makeAJAXCall(*сюда).
Но как я понял этого сделать невозможно...? или я ошибаюсь.
Именно из php надо!

Спустя 11 минут, 12 секунд (27.01.2010 - 19:04) arlamar написал(а):
$res=$res.'<a href="" onclick="makeAJAXCall(\''.$strparam.'\', '.$intparam.'); return false;">'.$s[0].'</a><br>';

Спустя 15 часов, 28 минут, 40 секунд (28.01.2010 - 10:32) Miha написал(а):
arlamar Спасибо тебе большое!!! Очень сильно помог мне wink.gif


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.