[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ajax запрос помогите разобратся
bposter
Читал на этом сайте инструкцию по ajax вродебы все понятно было но когда начил собирать то не совсем получается, я саберал не на одной переменной а на двух чтоб их потом вывести и почемуто не выходит пишет [object HTMLInputElement] Подскажите где косяк?

<script type="text/javascript" >
//Эти танцы с бубном нужны для кроссбраузерности, что бы его понимали все браузеры
var req = Create();

function ge(id)
{
return document.getElementById(id);
}

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', 'add.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query);
}

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="load.gif" />';
}
}

/////Собераем все элементы формы которые будем отправлять
function Pusk()
{
var query;

text ='txt='+encodeURIComponent(ge('myid').value);
text ='txt='+encodeURIComponent(ge('myid2').value);
query ='txt='+myid2+'&text='+myid;
Request(query);
}

</script>
<div
style="margin:300px 0 0 500px;">
<table>
<tr>
<td
id="ajax"></td>
</tr>
<tr>
<td><input
type='text' id='myid' > <input type='text' id='myid2' ></td>
<td><input
type="button" value="ТЫРЦ" onClick="Pusk()"></td>
</tr>
</table>
</div>

Обработчик
<?php

$txt = isset($_POST['txt'])?$_POST['txt']:NULL;
$txt2 = isset($_POST['txt2'])?$_POST['txt2']:NULL;
sleep(1);
echo "<br>";
echo htmlspecialchars($txt);
echo htmlspecialchars($txt2);




Спустя 6 минут, 3 секунды (21.10.2011 - 16:59) Michael написал(а):
Вот левый код:
function Pusk()
{
var query;

text ='txt='+encodeURIComponent(ge('myid').value);
text ='txt='+encodeURIComponent(ge('myid2').value);
query ='txt='+myid2+'&text='+myid;
Request(query);
}

переменная text затирает свое предыдущее значении, и кстати вообще не используется. переменные myid, myid2 неопределены

Спустя 6 минут, 45 секунд (21.10.2011 - 17:05) bposter написал(а):
Вот так правильней будет я так понял
function Pusk()
{
var query;

text ='txt='+encodeURIComponent(ge('myid').value);
text ='txt2='+encodeURIComponent(ge('myid2').value);
query ='txt2='+myid2+'&text='+myid;
Request(query);
}


а как определить myid, myid2 подскажите?

Спустя 2 минуты, 1 секунда (21.10.2011 - 17:07) Игорь_Vasinsky написал(а):
text ='txt='+encodeURIComponent(ge('myid').value);
text ='txt2='+encodeURIComponent(ge('myid2').value);

Спустя 8 минут, 47 секунд (21.10.2011 - 17:16) bposter написал(а):
Чет не клеится тажа ошибка

function Pusk()
{
var query;

text ='txt='+encodeURIComponent(ge('myid').value);
text ='txt2='+encodeURIComponent(ge('myid2').value);
query ='txt2='+myid2+'&text='+myid;
Request(query);
}


Можыт в обработчике чет нетак хотя там вроде все ясно и прозрачно

    $txt = isset($_POST['txt'])?$_POST['txt']:NULL; 
$txt2 = isset($_POST['txt2'])?$_POST['txt2']:NULL;
sleep(1);
echo "<br>";
echo htmlspecialchars($txt);
echo htmlspecialchars($txt2);

Спустя 1 минута, 33 секунды (21.10.2011 - 17:18) Игорь_Vasinsky написал(а):
слушай... а консоль JS то на чё ругается?

и я не понял для чего в обоих строках text =

Спустя 1 минута, 47 секунд (21.10.2011 - 17:19) alex12060 написал(а):
facepalm.jpg


function Pusk()
{
var query;

myid ='txt='+encodeURIComponent(ge('myid').value); // ТУТ ДОЛЖЕН БЫТЬ MYID!!!!
myid2 ='txt2='+encodeURIComponent(ge('myid2').value); // ТУТ ДОЛЖЕН БЫТЬ MYID2!!!!
query ='txt2='+myid2+'&text='+myid;
Request(query);
}


Боже, ну показали же 2 раза уже, как можно не увидеть это?? :)

Спустя 1 минута, 13 секунд (21.10.2011 - 17:21) Игорь_Vasinsky написал(а):
ну.. я про это.

Спустя 3 минуты, 58 секунд (21.10.2011 - 17:25) bposter написал(а):
делал как тут http://irbis-team.com/15/13/1?PHPSESSID=28...10c1f2fdcf75737 хотя там на теории одно а полная сборка не соответствует теории blink.gif

Спустя 2 минуты, 41 секунда (21.10.2011 - 17:27) bposter написал(а):
Цитата (alex12060 @ 21.10.2011 - 14:19)
facepalm.jpg


function Pusk()
{
var query;

myid ='txt='+encodeURIComponent(ge('myid').value); // ТУТ ДОЛЖЕН БЫТЬ MYID!!!!
myid2 ='txt2='+encodeURIComponent(ge('myid2').value); // ТУТ ДОЛЖЕН БЫТЬ MYID2!!!!
query ='txt2='+myid2+'&text='+myid;
Request(query);
}


Боже, ну показали же 2 раза уже, как можно не увидеть это?? :)

Че та я вообще запутался там и есть myid2 и myid да и на уроке так показано

Спустя 2 минуты, 8 секунд (21.10.2011 - 17:29) Winston написал(а):
Свернутый текст
function Pusk()
{
var query;
var text1 = 'txt='+encodeURIComponent(ge('myid').value);
var text2 = 'txt2='+encodeURIComponent(ge('myid2').value);
query = 'txt2='+text2+'&text='+text1;
Request(query);
}

Спустя 2 минуты, 37 секунд (21.10.2011 - 17:32) Michael написал(а):
:lol:

function Pusk()
{
var query;
var text1 = encodeURIComponent(ge('myid').value);
var text2 = encodeURIComponent(ge('myid2').value);
query = 'txt2='+text2+'&text='+text1;
Request(query);
}

Спустя 1 минута, 7 секунд (21.10.2011 - 17:33) Winston написал(а):
Мда.. laugh.gif

Спустя 9 минут, 54 секунды (21.10.2011 - 17:43) bposter написал(а):
Цитата (Winston @ 21.10.2011 - 14:29)
Свернутый текст
function Pusk()
{
var query;
var text1 = 'txt='+encodeURIComponent(ge('myid').value);
var text2 = 'txt2='+encodeURIComponent(ge('myid2').value);
query = 'txt2='+text2+'&text='+text1;
Request(query);
}

этот код выдает txt2=33333333

function Pusk()
{
var query;
var text1 = 'txt='+encodeURIComponent(ge('myid').value);
var text2 = 'txt2='+encodeURIComponent(ge('myid2').value);
query = 'txt2='+text2+'&text='+text1;
Request(query);
}

Спустя 1 минута, 9 секунд (21.10.2011 - 17:44) Winston написал(а):
bposter
Тебе Michael в последнем своем посте дал правильный код.

Спустя 7 секунд (21.10.2011 - 17:44) Игорь_Vasinsky написал(а):
а что должен?

Спустя 23 секунды (21.10.2011 - 17:45) bposter написал(а):
Цитата (Michael @ 21.10.2011 - 14:32)
:lol:

function Pusk()
{
var query;
var text1 = encodeURIComponent(ge('myid').value);
var text2 = encodeURIComponent(ge('myid2').value);
query = 'txt2='+text2+'&text='+text1;
Request(query);
}

а этот тока с одного блока выводит

Спустя 1 минута, 37 секунд (21.10.2011 - 17:46) Winston написал(а):
Посмотри в консоль ошибок.

Спустя 6 минут, 58 секунд (21.10.2011 - 17:53) bposter написал(а):
Тот правильный код что вы говорите выдает тока результат тока с одного поля http://blog-47.ru/test/

Спустя 2 минуты, 41 секунда (21.10.2011 - 17:56) Winston написал(а):
В обработчике напиши
print_r($_POST);
И посмотри возможно не приходит второе поле.



Спустя 4 минуты, 34 секунды Winston написал(а):
Попробуй еще написать
function Pusk()
{
var query;
var text1 = encodeURIComponent(ge('myid').value);
var text2 = encodeURIComponent(ge('myid2').value);
query = 'txt2='+text2+'&text='+text1;
alert(query);
Request(query);
}


Спустя 5 минут, 7 секунд (21.10.2011 - 18:01) Michael написал(а):
Цитата (bposter @ 21.10.2011 - 16:53)
Тот правильный код что вы говорите выдает тока результат тока с одного поля http://blog-47.ru/test/

да что ты говоришь. А в файрбаге смотрю - два передается. Значит ловится не так...

Спустя 1 минута, 2 секунды (21.10.2011 - 18:02) bposter написал(а):
Все приходит http://blog-47.ru/test/ может я протупил надо из масива вытягивать каждый отдельно

Спустя 4 минуты, 3 секунды (21.10.2011 - 18:06) Michael написал(а):
Отправляются
query = 'txt2='+text2+'&text1='+text;
Принимаешь:
$txt = isset($_POST['txt'])?$_POST['txt']:NULL;
$txt2 = isset($_POST['txt2'])?$_POST['txt2']:NULL;
неужели не заметна несостыковочка?

Спустя 44 секунды (21.10.2011 - 18:07) Winston написал(а):
Нашел.
Ты передаешь
query = 'txt2='+text2+'&text1='+text;
А нужно
query = 'txt2='+text2+'&txt1='+text;



Спустя 36 секунд Winston написал(а):
Michael
Опередил smile.gif

Спустя 11 минут, 9 секунд (21.10.2011 - 18:18) bposter написал(а):
Писец ну не как не выходит
function Pusk()
{
var query;
var txt = encodeURIComponent(ge('myid').value);
var txt2 = encodeURIComponent(ge('myid2').value);
query = 'txt2='+txt2+'&txt1='+txt;
Request(query);
}

     $txt = isset($_POST['txt'])?$_POST['txt']:NULL;
$txt2 = isset($_POST['txt2'])?$_POST['txt2']:NULL;
sleep(1);
echo "<br>";
echo htmlspecialchars($txt);
echo htmlspecialchars($txt2);

Спустя 2 минуты, 50 секунд (21.10.2011 - 18:21) Winston написал(а):
Это не писец, а не внимательность
Сравни свою строку с моей
Цитата (bposter @ 21.10.2011 - 18:18)
$txt = isset($_POST['txt'])?$_POST['txt']:NULL;

$txt = isset($_POST['txt1'])?$_POST['txt1']:NULL;

Разницу видишь ?

Спустя 45 секунд (21.10.2011 - 18:22) Michael написал(а):
Это уже смахивает на диагноз. К окулисту!


Спустя 3 минуты, 32 секунды (21.10.2011 - 18:25) bposter написал(а):
Всем большое спасибо за помощь заработало наконец то, теперь сяду буду разбирать а то по уроку все вроде понятно а на деле совсем другое. smile.gif

Спустя 2 часа, 32 минуты, 21 секунда (21.10.2011 - 20:58) bposter написал(а):
Подскажите какая здесь логика работы ajax и php загрузчика ? в Джава скрипте вроде бы смотрел внимательно все правильно Но не совсем понятно какой параметр туда передается вернее что передается понятно, не понятно куда и во что в переменную или куда?

<script type="text/javascript" >
//Эти танцы с бубном нужны для кроссбраузерности, что бы его понимали все браузеры
var req = Create();

function ge(id)
{
return document.getElementById(id);
}

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', 'add.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query);
}

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="load.gif" />';
}
}

/////Собераем все элементы формы которые будем отправлять
function Pusk()
{
var query;
var txt = encodeURIComponent(ge('uploadfile').value);
query = 'uploadfile='+txt;
Request(query);
}

</script>
<div
style="margin:300px 0 0 500px;">
<div
id="ajax"></div>
<form
action="add.php" method="post" enctype="multipart/form-data">
<input
type="file" name="uploadfile" />
<input
type="button" value="Закачать" onClick="Pusk()"/>
</form>

</div>



                           $uploaddir = isset($_POST['uploadfile'])?$_POST['uploadfile']:NULL;



// Каталог, в который мы будем принимать файл:
$uploaddir = './files/';
$uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);

// Копируем файл из каталога для временного хранения файлов:
if (copy($_FILES['uploadfile']['tmp_name'], $uploadfile))
{
echo "<h3>Файл успешно загружен на сервер</h3>";
}
else { echo "<h3>Ошибка! Не удалось загрузить файл на сервер!</h3>"; exit; }

Спустя 11 минут, 17 секунд (21.10.2011 - 21:09) bposter написал(а):
Чють изменил форму и ajax заработал но серавно не грузит

/////Собераем все элементы формы которые будем отправлять
function Pusk()
{
var query;
var txt = encodeURIComponent(ge('ttt').value);
query = 'uploadfile='+txt;
Request(query);
}

</script>
<div
style="margin:300px 0 0 500px;">
<div
id="ajax"></div>
<form
action="add.php" method="post" enctype="multipart/form-data">
<input
type="file" name="uploadfile" id="ttt" />
<input
type="button" value="Закачать" onClick="Pusk()"/>
</form>

</div>

Спустя 1 час, 8 минут, 33 секунды (21.10.2011 - 22:17) Winston написал(а):
Цитата (bposter @ 21.10.2011 - 20:58)
if (copy($_FILES['uploadfile']['tmp_name'], $uploadfile))

Вместо copy, используй
move_uploaded_file($tmp_name, "$uploads_dir/$name");

Спустя 1 минута, 27 секунд (21.10.2011 - 22:19) Игорь_Vasinsky написал(а):
Свернутый текст
ай-ай
"$uploads_dir/$name");

Спустя 16 часов, 1 минута, 28 секунд (22.10.2011 - 14:20) bposter написал(а):
Ошибка! Не удалось загрузить файл на сервер!

Я добавил
echo $_POST['uploadfile'];
чтоб проверить что название файла прилетает в обработчики в се нармально прилетает вот можно посмотреть http://blog-47.ru/test/ но почемуто не работает

                         // Каталог, в который мы будем принимать файл:
$uploaddir = 'files/';
$uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);

// Копируем файл из каталога для временного хранения файлов:
if (move_uploaded_file($tmp_name, "$uploads_dir/$name"))
{
echo "<h3>Файл успешно загружен на сервер</h3>";
}
else { echo "<h3>Ошибка! Не удалось загрузить файл на сервер!</h3>";

echo $_POST['uploadfile'];


}

Спустя 2 часа, 57 минут, 17 секунд (22.10.2011 - 17:18) Игорь_Vasinsky написал(а):
ты здесь работаешь с массивом $_FILES, на $_POST если ты конечно всё правильно нарисовал

пропиши в обработчике

echo '<pre>' . print_r($_FILES) . '</pre>';


получишь весь массив как на ладони...

в $_FILES['somename']['error'] - ты увидишь ошибки

сверь из с http://www.php.net/manual/ru/features.file-upload.errors.php

ситуация прояснится - ты поймёшь что глючит ;)

Спустя 10 минут, 52 секунды (22.10.2011 - 17:28) bposter написал(а):
это
echo '<pre>' . print_r($_FILES) . '</pre>';
дает пустой масив Array ()

а если вот так
echo '<pre>' . print_r($_POST) . '</pre>';
то в масиве тока сама картинка Array ( [uploadfile] => fgswrgsrg.gif )

Спустя 8 минут, 30 секунд (22.10.2011 - 17:37) Игорь_Vasinsky написал(а):
код формы покажи

<form enctype="multipart/form-data">

Спустя 49 секунд (22.10.2011 - 17:38) bposter написал(а):
<form action="add.php" method="post" enctype="multipart/form-data">
<input
type="file" name="uploadfile" id="ttt" />
<input
type="button" value="Закачать" onClick="Pusk()"/>
</form>

Спустя 3 минуты, 20 секунд (22.10.2011 - 17:41) Игорь_Vasinsky написал(а):
ааа.. может потому что AJAX.... а что в POST - то прилетает?

Спустя 4 минуты, 14 секунд (22.10.2011 - 17:45) bposter написал(а):
в POST прилетает название изображения с расширением

Спустя 3 минуты, 11 секунд (22.10.2011 - 17:48) bposter написал(а):
но если написать так так


echo '<pre>' . print_r($_POST) . '</pre>';

то выдает это
Array ( [uploadfile] => )

1

Спустя 44 секунды (22.10.2011 - 17:49) imbalance_hero написал(а):
Аякс же файлы не отправляет smile.gif

Спустя 4 минуты, 23 секунды (22.10.2011 - 17:54) bposter написал(а):
Афигеть ..после всего

Спустя 7 минут, 4 секунды (22.10.2011 - 18:01) Игорь_Vasinsky написал(а):
flash зато да biggrin.gif

Спустя 1 минута, 6 секунд (22.10.2011 - 18:02) Игорь_Vasinsky написал(а):
я и говорю $_FILES должен быть...

Спустя 3 минуты, 8 секунд (22.10.2011 - 18:05) bposter написал(а):
Хорошо исправте пожайлуста тогда где не правильно вот весь код

Форма отправки
<script type="text/javascript" >
//Эти танцы с бубном нужны для кроссбраузерности, что бы его понимали все браузеры
var req = Create();

function ge(id)
{
return document.getElementById(id);
}

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', 'add.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query);
}

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="load.gif" />';
}
}

/////Собераем все элементы формы которые будем отправлять
function Pusk()
{
var query;
var txt = encodeURIComponent(ge('ttt').value);
query = 'uploadfile='+txt;
Request(query);
}

</script>
<div
style="margin:300px 0 0 500px;">
<div
id="ajax"></div>
<form
action="add.php" method="post" enctype="multipart/form-data">
<input
type="file" name="uploadfile" id="ttt" />
<input
type="button" value="Закачать" onClick="Pusk()"/>
</form>



</div>


Обработчик
                        // Каталог, в который мы будем принимать файл:
$upload_dir = 'files/';
$uploadfile = $upload_dir.basename($_FILES['uploadfile']['name']);


// Копируем файл из каталога для временного хранения файлов:
if (move_uploaded_file($tmp_name, "$upload_dir/$name"))
{
echo "<h3>Файл успешно загружен на сервер</h3>";
}
else {

echo "Косяк";
}

Спустя 1 час, 40 минут, 55 секунд (22.10.2011 - 19:46) Игорь_Vasinsky написал(а):

Спустя 7 часов, 31 минута, 40 секунд (23.10.2011 - 03:17) bposter написал(а):
Чето тут не то вот самый простой пример все копирую запускаю и не фига не работает вернее перекидывает на страницу обработчика и выводит то что в форму ввел, может денвер стоит поменять? или в нем наврятли может быть причина?

Спустя 28 минут, 25 секунд (23.10.2011 - 03:46) Игорь_Vasinsky написал(а):
нет.. ты в скрипте гдето накасорезил...

покажи как код сформировал.

Спустя 5 минут, 28 секунд (23.10.2011 - 03:51) Игорь_Vasinsky написал(а):

Спустя 20 минут, 57 секунд (23.10.2011 - 04:12) bposter написал(а):
четам путать яж пример скопировал


_____________
Вязание xe4.ru спицами.
Сайт для тестов (подопытный №543)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.