[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не отправляется запрос
IamSmorodin
Есть функции на javascript:

function Request(query) {
req.open('post', 'index_ajax.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;
alert(b);
}else{
//Показываем индикатор работы скрипта
}
}


function ILiked(iduser,idnews) {
var query;
query = 'action=i_liked&user_id=' + document.getElementById(iduser).value + '&news_id=' + document.getElementById(idnews).value;
Request(query);
}


Есть PHP-код:
<div class="news_footer_link" id=<?=$id_form_liked ?> >
<
input type="hidden" name="id_news" id=<?=$id_liked_news_id ?> value=<?=$news['id'] ?> >
<
input type="hidden" name="id_user" id=<?=$id_liked_user_id ?> value=<?=$userdata['id'] ?> >
<
a href="#" onClick="ILiked('<?=$id_liked_user_id ?>','<?=$id_liked_news_id ?>')">Мне нравится</a>
</
div>


Здесь при клике на ссылку должна вызываться функция "ILiked", она отправляет данные скрипту:
$action = empty($_POST["action"]) ? "" : $_POST["action"];
$user_id = empty($_POST["user_id"]) ? "" : $_POST["user_id"];
$news_id = empty($_POST["news_id"]) ? "" : $_POST["news_id"];

if (!empty($action)) {
switch ($action) {
case "i_liked":
$usertable = "liked";
$query = mysql_query("INSERT INTO $usertable (id_user, id_news) VALUES ('".mysql_real_escape_string($user_id)."',
'"
.mysql_real_escape_string($news_id)."') ") or die($db_error);
if ($query) {
echo "Все работает!!!";
}
break;
}
}


Но при клике ничего не возвращается. Как думаете, где ошибка



Спустя 49 минут, 51 секунда (4.12.2010 - 16:58) sergeiss написал(а):
Во-первых, у тебя используются короткие тэги. Они правильно отрабатывают?
Во-вторых, ты посмотри для начала, какая же же у тебя на самом деле формируется страница. Или тут надо проявить телепатические способности и определить это?
В-третьих, что значит "при клике ничего не возвращается"?
В-четвертых, перед Request(query); поставь alert(query); и посмотри, то ли сформировалось, что тебе нужно?

PS. По п.4 я уверен, что "не то" сформировалось smile.gif Но ты сам в этом убедись.

Спустя 11 минут, 58 секунд (4.12.2010 - 17:10) IamSmorodin написал(а):
Цитата (sergeiss @ 4.12.2010 - 16:58)
Во-первых, у тебя используются короткие тэги. Они правильно отрабатывают?
Во-вторых, ты посмотри для начала, какая же же у тебя на самом деле формируется страница. Или тут надо проявить телепатические способности и определить это?
В-третьих, что значит "при клике ничего не возвращается"?
В-четвертых, перед Request(query); поставь alert(query); и посмотри, то ли сформировалось, что тебе нужно?

1. Теги отрабатываю правильно.
2. Как это сделать?
3. В функции Refresh алертом должно выводится "все работает", если сделана запись в БД
4. Проверял. Формируется то, что надо.

Спустя 8 минут, 7 секунд (4.12.2010 - 17:19) sergeiss написал(а):
1-2. Просто в браузере посмотри код страницы... Проще просто некуда!
3. Не очевидно как-то...
4. Так что выводит-то, какой текст?

Спустя 26 минут, 1 секунда (4.12.2010 - 17:45) IamSmorodin написал(а):
Цитата (sergeiss @ 4.12.2010 - 17:19)
1-2. Просто в браузере посмотри код страницы... Проще просто некуда!
3. Не очевидно как-то...
4. Так что выводит-то, какой текст?

Вот что формируется:
<div class="news_footer_link" id="">
<input
name="id_news" id="liked_idnews15" value="15" type="hidden">
<input
name="id_user" id="liked_iduser_15" value="" type="hidden">
<a
iswrapped="1" href="#" onclick="ILiked('liked_iduser_15','liked_idnews15')">Мне нравится</a>
</div>


нижнее подчеркивание забыл, но это не мешает делу

А вот query:
action=i_liked&user_id=58&news_id=15

Спустя 16 минут, 30 секунд (4.12.2010 - 18:01) sergeiss написал(а):
Кроме всего прочего, ты не проверяешь состояние перед отправкой нового запроса...

Я тут посмотрел повнимательнее, что же я отправляю, в своем коде (сравни со своим):
if( xmlHttp.readyState == 4 || xmlHttp.readyState == 0 )
{
xmlHttp.open( 'GET', request_page, true);
xmlHttp.onreadystatechange=handleServerResponse;
xmlHttp.send(null);
}

Переменная request_page у меня содержит как имя скрипта, так и все параметры. И всё работает.


_____________
Мой Twitter
Подписывайтесь :)
Быстрый ответ:

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