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

HTML+CSS+JavaScript

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

 

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

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

тема: Снова AJAX и POST
 
 автор: ddhvvn   (26.11.2007 в 18:57)   письмо автору
 
 

В общем-то, поиск я изучил по этой проблеме :))
Но только все способы основываются на подключении, отличающемся от моего...

А что-то под свой метод я не могу ниче придумать :(((

ХЕЛП, плиз =))
html

<html>
<head>
<title>My TEST AJAX</title>
<script type="text/javascript">
var httpRequest = createHttpRequest();
var resultId = '';
function createHttpRequest()
{
    var httpRequest;
    var browser = navigator.appName;

    if (browser == "Microsoft Internet Explorer")
    {
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else
    {
        httpRequest = new XMLHttpRequest();
    }

    return httpRequest;
}

function sendRequest(file, _resultId, getRequestProc)
{
    resultId = _resultId;
    document.getElementById(resultId).innerHTML = 'Подождите, идет загрузка...';

    var txt = document.getElementById("txt").value;

    httpRequest.open('post', file + '?asd=' + txt);
    httpRequest.onreadystatechange = getRequestProc;

httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=windows-1251");

    httpRequest.send(txt);
}

function getRequest()
{
    if (httpRequest.readyState == 4)
    {
        document.getElementById(resultId).innerHTML = httpRequest.responseText;
    }
}

</script>
</head>
<body>
<input type="text" id="txt" onkeypress="if (event.keyCode==13) sendRequest('test.php','result',getRequest);">
<p id="result">Здесь будет результат запроса</p>
</body>
</html>

php

<?php
  
echo $_POST["asd"]ж
?>


P.S.: ест-но с GET работает - проверял

   
 
 автор: coloboc66   (27.11.2007 в 09:13)   письмо автору
 
   для: ddhvvn   (26.11.2007 в 18:57)
 

Вот так должно быть:

httpRequest.open('post', file);
httpRequest.send(asd=txt);

   
 
 автор: bronenos   (27.11.2007 в 09:39)   письмо автору
 
   для: coloboc66   (27.11.2007 в 09:13)
 

httpRequest.send("asd=txt");

Если быть точнее

   
 
 автор: coloboc66   (27.11.2007 в 10:46)   письмо автору
 
   для: bronenos   (27.11.2007 в 09:39)
 

А может, так:

httpRequest.send("asd="+txt);

   
 
 автор: bronenos   (27.11.2007 в 11:20)   письмо автору
 
   для: coloboc66   (27.11.2007 в 10:46)
 

бля... я забыл что там текст генерится... как-то не посмотрел на эту часть кода, а лишь поправил отсутствие кавычек...
тогда лучше вообще так =)
httpRequest.send("asd="+encodeURIComponent(txt));

   
 
 автор: ddhvvn   (27.11.2007 в 11:56)   письмо автору
 
   для: bronenos   (27.11.2007 в 11:20)
 

Ок,спасибо.
Вроде работает!

   
 
 автор: Port_Artur1   (30.11.2007 в 08:45)   письмо автору
 
   для: ddhvvn   (27.11.2007 в 11:56)
 

как будет выглядеть строка

httpRequest.send("asd="+txt);



если нужно передать ещё 1 параметр sed=3

    var ddd = document.getElementById("sed").value; 


И что делает getRequest ?

   
 
 автор: Port_Artur1   (30.11.2007 в 10:44)   письмо автору
 
   для: Port_Artur1   (30.11.2007 в 08:45)
 

httpRequest.send("asd="+encodeURIComponent(txt),"asd1="+encodeURIComponent(txt1));


А почему то под Оперой не работает!!!!!!!

   
 
 автор: coloboc66   (30.11.2007 в 11:49)   письмо автору
 
   для: Port_Artur1   (30.11.2007 в 10:44)
 

На серверной стороне обрабатывается глобальный массив $_POST, а вы вместо массива пытаетесь подсунуть серверу непонятную смесь строк и переменных.
А в других броузерах работает разве???

   
 
 автор: Port_Artur1   (30.11.2007 в 12:04)   письмо автору
 
   для: coloboc66   (30.11.2007 в 11:49)
 

не не работает а как правильно написать подскажите пожалуйста?

   
 
 автор: coloboc66   (30.11.2007 в 13:26)   письмо автору
 
   для: Port_Artur1   (30.11.2007 в 12:04)
 

Самый примитивный (и далеко не лучший, наверное) вариант, не знаю - будет ли работать

httpRequest.send("asd1="+txt1);
httpRequest.send("asd2="+txt2);

Неохота думать...

   
 
 автор: bronenos   (30.11.2007 в 13:33)   письмо автору
 
   для: coloboc66   (30.11.2007 в 13:26)
 

надо данные передавать разделенные символом амперсандом

   
 
 автор: coloboc66   (30.11.2007 в 13:36)   письмо автору
 
   для: bronenos   (30.11.2007 в 13:33)
 

Вот так:

httpRequest.send("asd1="+txt1+"&asd2="+txt2);

И будет работать? Кто-нибудь пробовал?

   
 
 автор: Port_Artur1   (30.11.2007 в 13:42)   письмо автору
 
   для: coloboc66   (30.11.2007 в 13:36)
 

и с амперспандом тоже работает!

   
 
 автор: Port_Artur1   (30.11.2007 в 13:40)   письмо автору
 
   для: coloboc66   (30.11.2007 в 13:26)
 

Спасибо всем кто помогал!!!
Всё отлично работает

   
 
 автор: coloboc66   (30.11.2007 в 13:41)   письмо автору
 
   для: Port_Artur1   (30.11.2007 в 13:40)
 

Так какой вариант работает, хоть скажите. Самому интересно.

   
 
 автор: Port_Artur1   (30.11.2007 в 13:42)   письмо автору
 
   для: coloboc66   (30.11.2007 в 13:41)
 

Работает и с амперсандом!

   
 
 автор: bronenos   (30.11.2007 в 14:28)   письмо автору
 
   для: coloboc66   (30.11.2007 в 13:41)
 

coloboc66, работает с амперсандом (поскольку это родная форма передачи данных по GET, и send'ом)

   
 
 автор: Port_Artur1   (30.11.2007 в 21:47)   письмо автору
 
   для: bronenos   (30.11.2007 в 14:28)
 

есть проблема - не смотря на код ниже если в вызываемом фале есть кириллица, то она почему то тображается как синий ромб с вопросом посредине причём все кириллические буквы как это исправить?

 httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=windows-1251");


в вызываемом файле стоит вот что - что с нгим что без него всё-равно

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">


До этого , когда пользовался обычным POST таких проблем небыло помогите пожалуйста
я уже в тупик зашёл!!!

   
 
 автор: coloboc66   (01.12.2007 в 12:51)   письмо автору
 
   для: Port_Artur1   (30.11.2007 в 21:47)
 

Для аякса нужно всё делать (отправлять и принимать данные) в кодировке UTF-8.

   
 
 автор: bronenos   (01.12.2007 в 13:02)   письмо автору
 
   для: coloboc66   (01.12.2007 в 12:51)
 

кто сказал?
я отправляю в винде, принимаю в винде и отвечаю в винде (windows-1251)

   
 
 автор: coloboc66   (01.12.2007 в 13:25)   письмо автору
 
   для: bronenos   (01.12.2007 в 13:02)
 

Я сказал. Эта кодировка может работать с любыми языками., вплоть до китайского, наверное. А то, что можно и в винде извратиться и всё будет работать - не спорю. Но тут нужно помудохаться, как слесарю-гинекологу.

   
Rambler's Top100
вверх

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