[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как вернуть ответ с сервера, после ajax запроса.
SoMeOnE
Здравствуйте.
Не получается получить обратно с сервера ajax запрос.

Вот js

$(document).ready(function(){

$('#button').click(function(){

// alert ('ok');
var test = 5;
$.ajax({
type: "POST",
url: "test.php",
data: test,
success: function(data){
$('#result').html(test);
},
error: function() {
alert( "Data not Saved" );
}

}
);

});

});


и это test.php

<?php
header('Content-Type: text/html; charset=utf-8');
if($_POST['test']) {

$x = '<p>проверка связи)</p>';

}


php скрипт вообще не реагирует на условие if($_POST['test']). Во всех случаях возвращает значение переменной test (5).
Кто нибудь может объяснить как должен происходить возврат с сервера обработанного ответа. Или просто html получить.
Или же провести манипуляию с переменной $_POST['test'], а потом обратно в #result вернуть.
Что нужно записывать в html(). Как завершать php скрипт.
Подсказку может дадите где искать.
Заранее балгодарен.



Спустя 2 минуты, 57 секунд (11.03.2011 - 15:38) Michael написал(а):
data: {test : test}


if(isset($_POST['test']))

Спустя 16 минут, 9 секунд (11.03.2011 - 15:54) SoMeOnE написал(а):
Michael
С if($_POST['test']) я погорячился )

Заменил на

<?php
header('Content-Type: text/html; charset=utf-8');
if(isset($_POST['test'])) {

$x = '<p>проверка связи)</p>';
return $x;
}
else {

$x = '<p>нет связи</p>';
return $x;
}


а в js

success: function(data){
$('#result').html();
}

Но вся равно ничего не возвращает
Только html(test) в любом случае возвращает 5.
Как можно html вернуть? в #result

Спустя 13 секунд (11.03.2011 - 15:54) Snus написал(а):
и $('#result').html(test); замени на $('#result').html(data);

Спустя 22 минуты, 23 секунды (11.03.2011 - 16:17) SoMeOnE написал(а):
Цитата (Snus @ 11.03.2011 - 12:54)
и $('#result').html(test); замени на $('#result').html(data);

Не работает по прежнему. Ничего не возвращает.

Спустя 11 минут, 44 секунды (11.03.2011 - 16:28) Snus написал(а):
А где у тебя div id="result"?

Спустя 12 минут, 9 секунд (11.03.2011 - 16:40) SoMeOnE написал(а):
Цитата (Snus @ 11.03.2011 - 13:28)
А где у тебя div id="result"?

в html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<script
src="http://md/salam/test_ajax/jquery-1.4.2.min.js" type="text/javascript"></script>
<script
src="http://md/salam/test_ajax/test.js" type="text/javascript"></script>

</head>
<body>

<div>

<p
id="button"> button </p>

</div>

<div
id="result">

</div>

</body>
</html>

Спустя 4 минуты, 22 секунды (11.03.2011 - 16:45) SoMeOnE написал(а):
По header не могу определить вообще уходит, что то в скрипт или нет.
POST test.php

Response Headersview source
Date Fri, 11 Mar 2011 13:42:43 GMT
Server Apache/2.0.63 (Win32) PHP/5.2.5
X-Powered-By PHP/5.2.5
Content-Length 0
Keep-Alive timeout=15, max=98
Connection Keep-Alive
Content-Type text/html; charset=utf-8


Request Headersview source
Host md
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15
Accept */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Content-Type application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With XMLHttpRequest
Referer http://md/salam/test_ajax/ajax.php
Content-Length 6
Cookie PHPSESSID=5lp1k6b18qgcs1gke1ar28okd6
Pragma no-cache
Cache-Control no-cache


Это нормально?

Спустя 2 часа, 32 минуты, 1 секунда (11.03.2011 - 19:17) SoMeOnE написал(а):
Никто не подскажет в чем проблема?

Спустя 33 минуты, 26 секунд (11.03.2011 - 19:50) alex12060 написал(а):

$(document).ready(function(){

$('#button').click(function(){

var test = 5;
$.ajax({
type: "POST",
url: "test.php",
data: "test="+test,
success: function(data){
$('#result').html(data);
},
error: function() {
alert( "Data not Saved" );
}

}
);

});

});



<?php
header('Content-Type: text/html; charset=utf-8');
if(isset($_POST['test'])) {

echo '<p>проверка связи)</p>';
}
else {

echo '<p>нет связи</p>';
}

Спустя 4 часа, 19 минут, 19 секунд (12.03.2011 - 00:10) SoMeOnE написал(а):
alex12060
Спасибо.

Спустя 43 минуты, 52 секунды (12.03.2011 - 00:53) Trianon написал(а):
Цитата (SoMeOnE @ 11.03.2011 - 15:54)
Michael
С if($_POST['test']) я погорячился )

Заменил на

<?php
header('Content-Type: text/html; charset=utf-8');
if(isset($_POST['test'])) {

$x = '<p>проверка связи)</p>';
return $x;
}
else {

$x = '<p>нет связи</p>';
return $x;
}


а в js

success: function(data){
$('#result').html();
}

Но вся равно ничего не возвращает
Только html(test) в любом случае возвращает 5.
Как можно html вернуть? в #result

не return $x;
а echo $x;

Спустя 3 минуты, 10 секунд (12.03.2011 - 00:57) SoMeOnE написал(а):
Trianon
Еще раз спасибо.
Вроде бы разобрался.

Спустя 3 минуты, 31 секунда (12.03.2011 - 01:00) SoMeOnE написал(а):
Trianon
А если обрабатывать в функции, return сработает?

Спустя 2 минуты, 40 секунд (12.03.2011 - 01:03) Trianon написал(а):
Не понял.

Спустя 7 минут, 53 секунды (12.03.2011 - 01:11) SoMeOnE написал(а):
Trianon
Можно вообще передать обработку запроса не целому скрипту controller.php, а функции внутри него напрямую?
Если нет, то наверное внутри я смогу перенаправить обработку в какую нибудь функцию, что бы она обновила базу данных. После захочу вернуть ответ обратно в браузер в конце функции тоже надо писать echo . Или return.

Извините если мои вопросы неккоректны изначально по формулировке.

Спустя 5 минут, 34 секунды (12.03.2011 - 01:16) Trianon написал(а):
Запрос издает клиент (браузер).
Запрос обрабатывает и отклик формирует сервер (apache+php)
Браузер, формируя запрос, указывает не функцию, и даже не скрипт.
Браузер указывает URL.
http-сервер (apache) по этому URL определяет, задействовать ли php, а если да, то по какому именно скрипту. И только потом дело доходит до функций, классов и т.п.
Каакие именно из функций будут вызваны - непринципиально.
Принципиально то, что php должен сгенерировать отклик (заголовок и тело) и отправить его назад в браузер.

Спустя 18 минут, 54 секунды (12.03.2011 - 01:35) SoMeOnE написал(а):
Trianon
Ну допустим когда я работаю только в php и обращаюсь к классам, функциям этих классов, в самой функции я всю сформированную переменную (допустим $article),
которая содержит в себе: заголовок, краткий текст и тд. (массив впринципе). В конце функции возвращаю
return $article

И после через другой класс я могу ее вызывать. Любые ее значения.
Можно ли так работать с ajax запросом.
Или же в этом случае в конце функции надо выывести через
echo '....'

вывести все, что мне нужно?

Учитывая Ваше последнее предложения я так понел в любом случае в конце концов нужно все генерировать через echo. Я правильно понел.

Спустя 10 минут, 42 секунды (12.03.2011 - 01:46) Trianon написал(а):
функции и объекты JS - это функции и объекты JS
функции и классы php - это функции и классы php

JS и php исполняются независимо друг от друга и на разных машинах.
И друг о друге (тем более о функциях, объектах, классах) сами по себе ничего не знают.

Спустя 7 часов, 4 минуты, 22 секунды (12.03.2011 - 08:50) SoMeOnE написал(а):
Trianon
Все. теперь ясно. Спасибо.

Спустя 11 дней, 7 часов, 1 минута, 50 секунд (23.03.2011 - 15:52) rammlied написал(а):
в хроме если включить просмотре кодов элементов пишет что файл text.php undefined? кто нибудь знает что за проблема?
Быстрый ответ:

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