Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ajax + php 
:(
    Опции темы
knut
Дата 5.6.2008, 21:29 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день
есть след. форма 
Код

<html>
   <form name= "myfrm" action="ajax.php" method="POST">
        <input type="hidden" id="h_id" name="cmp" value=""/>
            <input type="button" name="test" value="<?echo("somevalu")?>" id="<?echo("some_id")?>" onclick="requestdata(this);"/>    
      </form>
</html>


мне наго получить эту форму на сервере без сабмита формы т.е ajax ом. (т.е если я бы зделал простой сабмит а сервере я бы получил $_POST['cmp] $_POST['test])
а делаю так
Код

function requestdata(label){
    el = document.getElementById("h_id");
    el.value = elem.id;
    loadXMLDoc("somefile/ajax.php");


var req;
var reqTimeout;
 
function loadXMLDoc(url) {
    req = null;
    if (window.XMLHttpRequest) {
        try {
            req = new XMLHttpRequest();
        } catch (e){}
    } else if (window.ActiveXObject) {
        try {
            req = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e){
            try {
                req = new ActiveXObject('Microsoft.XMLHTTP');
            } catch (e){}
        }
    }
 
    if (req) {
        req.onreadystatechange = processReqChange;
        req.open("POST", url, true);
        req.send(null);
        reqTimeout = setTimeout("req.abort();", 5000);
    } 
}



function processReqChange() {
    if (req.readyState == 4) {
         clearTimeout(reqTimeout);
     if (req.status == 200) {
    // вот здець мне надо получить форму myfrm  и получить значения тегов cmp и test ое и передать на сервер
        
    }
            
         }
}


 а вот уже на сервере 
Код

<?
    $_POST['name']
    $_POST['cmp']
?>



Это сообщение отредактировал(а) knut - 5.6.2008, 21:30


--------------------
Цитата

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
PM MAIL   Вверх
Fortop
Дата 6.6.2008, 00:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



И?

Добавлено через 1 минуту и 57 секунд
JsHttpRequest смотрел?


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Молоток
Дата 6.6.2008, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

function requestdata(label){
    el = document.getElementById("h_id");
    el.value = elem.id;
    loadXMLDoc("somefile/ajax.php?id="+el.value);


PM MAIL   Вверх
knut
Дата 6.6.2008, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

И?


вот взял парамерты я запехнул и в улр и передаю на сервер
Код

function requestdata(label){
    el = document.getElementById("h_id");
    el.value = elem.id;
    loadXMLDoc("ajax.php?h_id='+document.getElementById('h_id').value?id =    '+document.getElementById('label.id').value'"); 


затем 
Код

function loadXMLDoc{
 //...
   if (req) {
     
        req.onreadystatechange = processReqChange;
        req.open('GET', url, true);
        req.send(null);
        reqTimeout = setTimeout("req.abort();", 5000);
    } else {
        alert("Браузер не поддерживает AJAX");
    }
}

а вот уже я обработчике  я должен пересобрат ворму если я олучил ответ с сервера не так ли
Код

function processReqChange(){
  //...
   if(req.status == 200){
        ///?????? как сделать здесь?
   }
}

и на конец на сервере 

Код

<?
    echo $_POST['name'];
    echo $_POST['cmp'];
?>


Это сообщение отредактировал(а) knut - 6.6.2008, 10:44


--------------------
Цитата

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
PM MAIL   Вверх
Fortop
Дата 6.6.2008, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(knut @  6.6.2008,  10:43 Найти цитируемый пост)
а вот уже я обработчике  я должен пересобрат ворму если я олучил ответ с сервера не так ли

Чего вдруг?

Это обработчик ответа, который ты пришлешь со стороны сервера.

Добавлено через 25 секунд
А пересобирать форму или нет - зависит от тебя.

Зачем ты решил ее пересобрать?


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
knut
Дата 6.6.2008, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

<script type="text/javascript">
function requestdata(label){
    
    el = document.getElementById("h_id");
    el.value = label.id;
    
  var firts_param = el.value;
  var second_param = document.getElementById(label.id).value;
  var url = "ajax.php?firts_param=" + escape(firts_param) +
    "&second_param=" + escape(second_param);
    loadHTML(url);
}

var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject() {
var xmlHttp;
try {
  xmlHttp = new XMLHttpRequest();
    }
  catch(e){
     var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0',
                                     'MSXML2.XMLHTTP.5.0',
                                     'MSXML2.XMLHTTP.4.0',
                                     'MSXML2.XMLHTTP.3.0',
                                     'MSXML2.XMLHTTP',
                                     'Microsoft.XMLHTTP');
         for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++){
           try{
             xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
               }
           catch(e) {}
                                                                  }
           
           }
   if (!xmlHttp) alert('Ваш броузер не поддерживает асинхронные запросы !\n Попробуйте сменить броузер\n Рекомендуем использовать Microsoft Internet Exploler');
     else {
            return xmlHttp; 
          }
                                       }
function handleRequestStateChange() {

 if(xmlHttp.readyState == 4) {
              if(xmlHttp.status == 200){
                             try{
                                handleServerResponse();
                                 }
                           catch(e){
                              alert("Ошибка чтения ответа"+ e.toString());
                                     }
                                        }
                                    else{
                                     alert("Возникли проблемы при получении данных:\n"+ xmlHttp.statusText+"\nПопробуйте сменить броузер\n Рекомендуем использовать Microsoft Internet Exploler");
                                         }
                              }
       

}


function handleServerResponse() {
                  response = xmlHttp.responseText;
                  contentDiv = document.getElementById('h_id').value;
                  contentDiv.innerHTML = response;

}

function loadHTML(url) {
 
  if(xmlHttp){
                try{
xmlHttp.open("POST", url, true);
xmlHttp.setRequestHeader("Method", "POST server.php HTTP/1.1");
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.onreadystatechange = handleRequestStateChange;
xmlHttp.send(null);
                   }
                  catch (e){
                           alert("Невозможно соединится с сервером:\n");
                            }
                }
}
</script>
<html>
 <form name= "myfrm" action="ajax.php" method="POST">
    <input type="hidden" id="h_id" name="cmp" value=""/>
        <input type="button" name="test" value="<?echo("somevalu")?>" id="<?echo("some_id")?>" onclick="requestdata(this);"/>  
</form>
</html> 



Код

<? 
header("Content-type: text/plain; charset=windows-1251");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);



echo($_Get['firts_param']);// пусто не чего не прешло
echo($_Get['second_param']);//пусто не чего не прешло

?>



Добавлено через 20 секунд
всроде запрос нормально посылается но вот на сервере не как не могу получить послонные значения 


--------------------
Цитата

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




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


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

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