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 я уверен, что "не то" сформировалось Но ты сам в этом убедись.
Во-вторых, ты посмотри для начала, какая же же у тебя на самом деле формируется страница. Или тут надо проявить телепатические способности и определить это?
В-третьих, что значит "при клике ничего не возвращается"?
В-четвертых, перед Request(query); поставь alert(query); и посмотри, то ли сформировалось, что тебе нужно?
PS. По п.4 я уверен, что "не то" сформировалось Но ты сам в этом убедись.
Спустя 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. Так что выводит-то, какой текст?
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 написал(а):
Кроме всего прочего, ты не проверяешь состояние перед отправкой нового запроса...
Я тут посмотрел повнимательнее, что же я отправляю, в своем коде (сравни со своим):
Переменная request_page у меня содержит как имя скрипта, так и все параметры. И всё работает.
Я тут посмотрел повнимательнее, что же я отправляю, в своем коде (сравни со своим):
if( xmlHttp.readyState == 4 || xmlHttp.readyState == 0 )
{
xmlHttp.open( 'GET', request_page, true);
xmlHttp.onreadystatechange=handleServerResponse;
xmlHttp.send(null);
}
Переменная request_page у меня содержит как имя скрипта, так и все параметры. И всё работает.
_____________
Мой Twitter
Подписывайтесь :)