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

HTML+CSS+JavaScript

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

 

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

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

тема: 2 разных запроса ajax с одной страницы
 
 автор: mister_pipin   (14.05.2012 в 23:49)   письмо автору
 
 

Всем привет. Подскажите что я делаю не так.
В данном примере есть 2 инпута с айди и две кнопки. Пытаюсь сделать что бы оба запроса не реагировали друг на друга. Но если по очереди буду нажимать кнопки отправить то эти запросы перекрешиваются как то между собой. Что сделал не правильно?
За ранее спасибо

<?php
header
("Content-Type: text/html; charset=utf-8"); 
error_reporting(E_ALL & ~E_NOTICE); 
?>
<!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">

<script type="text/javascript">

var req = Create();

function Create(){  
    if(navigator.appName == "Microsoft Internet Explorer")    {  
        req = new ActiveXObject("Microsoft.XMLHTTP");  
    }    
    else    {  
        req = new XMLHttpRequest();  
    }
    return req;  
}  

function Request(query){
    req.open('post', './new.php' , true );
    req.onreadystatechange = Refresh;
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
    req.send(query);  
}

function Request1(query1){
    req.open('post', './new1.php' , true );
    req.onreadystatechange = Refresh1;
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
    req.send(query1);  
}

function Refresh(){
    var a = req.readyState;  
  
    if( a == 4 )    {
        var b = req.responseText;
        document.getElementById('ajax').innerHTML = b;
    }
    else    {
        document.getElementById('ajax').innerHTML = '<img src="prel.gif" width="30px" />';
    }
}

function Refresh1(){
    var aa = req.readyState;  
  
    if( aa == 4 )    {
        var bb = req.responseText;
        document.getElementById('ajax1').innerHTML = bb;
    }
    else    {
        document.getElementById('ajax1').innerHTML = '<img src="prel.gif" width="30px" />';
    }
}

function Pusk(){  
    var query;  
    query ='txt='+encodeURIComponent(document.getElementById('myid').value);
    Request(query);
}

function Pusk1(){  
    var query1;  
    query1 ='txt1='+encodeURIComponent(document.getElementById('myid1').value);
    Request1(query1);
}

</script>
<title>аякс</title>

</head>

<body topmargin="0" leftmargin="0">


<table width="100" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><input type='text' id='myid' ></td>
    <td colspan="2"><input type="button" value="Проверить" onClick="Pusk()"></td>
    <td valign="top"><div id="ajax"></div></td>
  </tr>

</table>
<br>
<hr>
<br>
<table width="100" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><input type='text' id='myid1' ></td>
    <td colspan="2"><input type="button" value="Проверить1" onClick="Pusk1()"></td>
    <td valign="top"><div id="ajax1"></div></td>
  </tr>
</table>
</body>
</html>

  Ответить  
 
 автор: ЯСА   (15.05.2012 в 01:08)   письмо автору
 
   для: mister_pipin   (14.05.2012 в 23:49)
 

Вы пошли неверным путём.

Все функции, которые вы "размножили" - их можно было написать в одном экземпляре.
А вот объектов функцией Create () надо было создать два, вот так:
var req = new Array (Create (), Create ());

Вызов функции Pusk () оформляете как Pusk (0),
а Pusk1 () заменяете на Pusk (1).

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

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

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