Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызов функции проиcходит повторно 
:(
    Опции темы
chiffa
Дата 3.11.2008, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: -1
Всего: -1



Добрый день. делаю асинхронный запрос в пхп файл через XmlHttpRequestObject. есть форма:

<input type=text name='kre' id="myInput" size='20'  onblur='process_schet(0)'>

<input type='text' id="schetsx" disabled name='mfo_nazvsssssssa'>

через schetsx выводится значение kre. все работает номально, когда курсок уходит с поля kre, но если я им становлюсь назад в это поля и начинаю что либо изменять меняется и schetsx. Как сделать что бы измение проиходили только когда курсор опять уйдет из kre
PM MAIL   Вверх
bars80080
Дата 3.11.2008, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



сдаётся мне, у тебя там существует переменная, которая меняется как флаг при наступлении события onblur для name='kre', в зависимости от неё и происходит обработка. надо бы делать без неё или хотя бы переводить её в обратное состояние по выполнению процесса


PM MAIL WWW   Вверх
chiffa
Дата 3.11.2008, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: -1
Всего: -1



спасибо, за ответ но немного недонял. где там?... в пхп файле идет вывод echo $kre."***";
в js передаче идет 

    kre_nam1 = document.getElementById("myInput").value;
    xmlHttp1.open("GET", "schetcheck.cff?kre=" + kre_nam1, true);


передачя в исходный файл:

var kr1 = helloMessage1.split('***');

 document.getElementById("schetsx").value = kr1[0];
PM MAIL   Вверх
chiffa
Дата 4.11.2008, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: -1
Всего: -1



никто не знает?...
PM MAIL   Вверх
IDVsbruck
Дата 4.11.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



Ну, кроме как поставить return false после process_schet(0) ничего не приходит. Возможно, нужен более полный код (ПэХаПэ не нужен).
PM MAIL   Вверх
chiffa
Дата 4.11.2008, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: -1
Всего: -1



return false не помог. уже пробывал. код 

Код

var xmlHttp1 = createXmlHttpRequestObject1();
// retrieves the XMLHttpRequest object

function createXmlHttpRequestObject1()
{

  // will store the reference to the XMLHttpRequest object
  var xmlHttp1;
  // if running Internet Explorer
  if(window.ActiveXObject)
  {
    try
    {
      xmlHttp1 = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e)
    {
      xmlHttp1 = false;
    }
  }
  // if running Mozilla or other browsers
  else
  {
    try
    {
      xmlHttp1 = new XMLHttpRequest();
    }
    catch (e)
    {
      xmlHttp1 = false;
    }
  }

    // return the created object or display an error message
  if (!xmlHttp1)
   alert("Error creating the XMLHttpRequest object.");
  else
    return xmlHttp1;

}

// make asynchronous HTTP request using the XMLHttpRequest object
function process_schet(stop)
{
    
    


  // proceed only if the xmlHttp object isn't busy
  if (xmlHttp1.readyState == 4 || xmlHttp1.readyState == 0)
  {


    // retrieve the name typed by the user on the form
    mfo1 = document.getElementById("myName").value;
    kre_nam1 = document.getElementById("myInput").value;





    // execute the quickstart.php page from the server
    xmlHttp1.open("GET", "schetcheck.cff?kre=" + kre_nam1, true);
    // define the method to handle server responses
    xmlHttp1.onreadystatechange = handleServerResponse1;
    // make the server request
    xmlHttp1.send(null);


  }
  else
    // if the connection is busy, try again after one second
    setTimeout('process_schet()', 1000);
}

// executed automatically when a message is received from the server
function handleServerResponse1()
{


  // move forward only if the transaction has completed
  if (xmlHttp1.readyState == 4)
  {
   // status of 200 indicates the transaction completed successfully
    if (xmlHttp1.status == 200)
    {



      // extract the XML retrieved from the server
      xmlResponse1 = xmlHttp1.responseXML;

      // obtain the document element (the root element) of the XML structure
      xmlDocumentElement1 = xmlResponse1.documentElement;



      // get the text message, which is in the first child of
      // the the document element
      helloMessage1 = xmlDocumentElement1.firstChild.data;
      // update the client display using the data received from the server


var kr1 = helloMessage1.split('***');

 document.getElementById("schetsx").value = kr1[0];
 
      // restart sequence
      setTimeout('process_schet()', 1000);
    }
    // a HTTP status different than 200 signals an error
    else
    {
      alert("There was a problem accessing the server: " +
xmlHttp1.statusText);
    }
  }

}


PM MAIL   Вверх
IDVsbruck
Дата 4.11.2008, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



Ну, вобще-то в таком виде давать информацию - форменное неуважение к другим посетителям (в т.ч. и ко мне). В том числе и комментарии ...

Красным выделил куски, которые или не нужны, или просто не подходят: во-первых, вызов первой функции будет 2 раза - зачем? И зачем повторять запрос по таймауту? - Если коннекшена нет, то и таймаут не поможет.

Код
var xmlHttp1 = createXmlHttpRequestObject1();
function createXmlHttpRequestObject1() {
    var xmlHttp1;
    if (window.ActiveXObject) {
        try {
            xmlHttp1 = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {
            xmlHttp1 = false;
        }
    } else {
        try {
            xmlHttp1 = new XMLHttpRequest();
        } catch (e) {
            xmlHttp1 = false;
        }
    }
    if (!xmlHttp1) alert("Error creating the XMLHttpRequest object.");
    else return xmlHttp1;
}
function process_schet(stop) {
    if (xmlHttp1.readyState == 4[color=red] || xmlHttp1.readyState == 0[/color]) {
        mfo1 = document.getElementById("myName").value;
        kre_nam1 = document.getElementById("myInput").value;
        xmlHttp1.open("GET", "schetcheck.cff?kre=" + kre_nam1, true);
        xmlHttp1.onreadystatechange = handleServerResponse1;
        xmlHttp1.send(null);
    }[color=red] else setTimeout('process_schet()', 1000);[/color]
}
function handleServerResponse1() {
    if (xmlHttp1.readyState == 4) {
        if (xmlHttp1.status == 200) {
            xmlResponse1 = xmlHttp1.responseXML;
            xmlDocumentElement1 = xmlResponse1.documentElement;
            helloMessage1 = xmlDocumentElement1.firstChild.data;
            var kr1 = helloMessage1.split('***');
            document.getElementById("schetsx").value = kr1[0];
            setTimeout('process_schet()', 1000);
        } else alert("There was a problem accessing the server: " + xmlHttp1.statusText);
    }
}


Не выделилось ... смотри ограниченное тэгами [color]

Это сообщение отредактировал(а) IDVsbruck - 4.11.2008, 15:40
PM MAIL   Вверх
chiffa
Дата 4.11.2008, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 734
Регистрация: 11.11.2003

Репутация: -1
Всего: -1



Спасибо за помощь!  smile  и сорри за неуважительное оформление мессаги smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0806 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.