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

HTML+CSS+JavaScript

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

 

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

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

тема: AJAX функция не работает...помогите, думаю вам на зубок.
 
 автор: Onebythinkart   (27.10.2007 в 22:20)   письмо автору
 
 

Не работает:

<script language="javascript">
var req;

function loadDoc(url, idi) {
url = url +'?name=' + document.forms.frm.name.value;
    // для "родного" XMLHttpRequest
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange(idi);
        req.open("GET", url, true);
        req.send(null);

    // для версии с ActiveX
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange(idi);
            req.open("GET", url, true);
            req.send();
        }
    }
}

function processReqChange(id) {
    // только пр состоянии "complete"
    if (req.readyState == 1)
    { document.getElementById(id).innerHTML="<img src=loader.gif>"; } 
    if (req.readyState == 4) {
        // для статуса "OK"
        if (req.status == 200) {
            // здесь идут всякии штуки с полученным ответом
            document.getElementById(id).innerHTML=req.responseText
        } else {
            alert("Не удалось получить данные:\n" +
                req.statusText);
        }
    }
}
</script>


все дополнительные переменные(idi, id) введены, чтобы сделать эти функции универсальными.
Как раз, после них, и перестало работать.

   
 
 автор: bronenos   (28.10.2007 в 00:50)   письмо автору
 
   для: Onebythinkart   (27.10.2007 в 22:20)
 

onreadystatechange должна присваиваться сама функция, а не результат ее выполнения

   
 
 автор: Onebythinkart   (28.10.2007 в 10:05)   письмо автору
 
   для: bronenos   (28.10.2007 в 00:50)
 

И как же в функцию processReqChange добавить свои переменные...неужели это не реал?

мне нужно, чтобы я сам передовал id предмета, с которым я буду работать.

   
 
 автор: bronenos   (28.10.2007 в 10:29)   письмо автору
 
   для: Onebythinkart   (28.10.2007 в 10:05)
 

использовать эту переменную как глобальную (для чего она должна быть определена вне функций)

   
 
 автор: Onebythinkart   (28.10.2007 в 10:44)   письмо автору
 
   для: bronenos   (28.10.2007 в 10:29)
 

разобрался, только вот посмотрел эту строчку и понял, что данные передаются через GET, это не опасно в AJAX, или можно чере POST???
url = url +'?name=' + document.forms.frm.name.value;

   
 
 автор: Onebythinkart   (28.10.2007 в 10:59)   письмо автору
 
   для: Onebythinkart   (28.10.2007 в 10:44)
 

и ещё вопрос:
loadDoc('http://localhost/ta/user_in_world/?name=' + document.forms.auto.name.value + '&pass=' + document.forms.auto.pas.value', 'content_of_you')

IE пишет ошибку в этой строке в 127 символе.((((
PS в FF анологично не работает!

   
 
 автор: bronenos   (28.10.2007 в 13:32)   письмо автору
 
   для: Onebythinkart   (28.10.2007 в 10:59)
 

могу предложить кодировать строки перед передачей encodeURIComponent() и на сервере перекодировать в утф

   
Rambler's Top100
вверх

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