|
|
|
| Вообщем тему назвал так т.к. имеется несколько вопросов...
Необходимо сделать так чтобы и гет и пост запрос выполнились сразу на аяксе...
Использую jQuery..
кусок php кода
if($do == 'comments' && $id)
{
$query = "SELECT * FROM `news` WHERE `id`='".$id."'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$queryh = mysql_query("SELECT COUNT(*) as `all` FROM `comments` WHERE `newsid`='".$id."'");
$rowh = mysql_fetch_array($queryh);
$all = $rowh['all'];
echo "<div id='main'>";
echo '<div class="article">
<h3><a href="#">'.htmlspecialchars($row['theme']).'</a></h3>
<p>'.wordwrap(htmlspecialchars($row['content']), 50, "<br />\n" ,1).'</p>
<ul class="meta">
<li>'.date("d.m.y", $row['date']).'</li>
<li><a href="#" onclick="comments('.$row['id'].', '.$page.')">Комментарии</a> <small>[ '.$all.' ]</small></li>
<li><a href="#" onclick="back(\'index\')">Назад</a></li>
</ul>
<div class="clear"></div>
</div><br /><br />';
$num = 20;
$total = intval(($all - 1) / $num) + 1;
if(!$page || $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$query = "SELECT * FROM `comments` WHERE `newsid`='".$id."' ORDER BY `id` DESC LIMIT ".$start.", ".$num;
$result = mysql_query($query);
if(!mysql_num_rows($result))
{
echo '<div class="comment"><span><b class="right2"></b><b class="right"></b><b class="left2"></b><b class="left"></b><b class="left"></b>
</span><div class="text">Комментариев нет</div><b class="left"></b><b class="left"></b><b class="left2"></b><b class="right"></b><b class="right2"></b></div>';
}
else
{
for($i = 0; $i < mysql_num_rows($result); $i++)
{
$row = mysql_fetch_array($result);
echo '<div class="comment"><span><b class="right2"></b><b class="right"></b><b class="left2"></b><b class="left"></b><b class="left"></b>
</span><div class="text">'.date("H:i:s d.m.y", $row['date']);
echo '<br/>'.htmlspecialchars($row['text']).'</b>';
echo '</div><b class="left"></b><b class="left"></b><b class="left2"></b><b class="right"></b><b class="right2"></b></div>';
}
}
echo '<br/><form method="post" enctype="multipart/form-data"><table>
<tr><td><textarea name="text" id="text" rows="4" cols="31"></textarea></td><td valign="top"> </td></tr>
<tr><td colspan="3">
<img src="captcha.php" style="border:1px solid black;vertical-align:middle" />
<input size="9" maxlength="5" type="text" id="captcha" name="captcha">
<input type="button" style="height:22px;" name="add" onclick="addcomment('.$id.', \'document.getElementById(text).value\', \'document.getElementById(captcha).value\')" value="a" title="a" /></td></tr>
</table></form>';
echo "</div>";
if($_POST['add'] == 'a')
{
if($_POST['captcha'] == $_SESSION['code'])
{
if (!get_magic_quotes_gpc())
{
$_POST['text'] = mysql_escape_string($_POST['text']);
}
if(empty($_POST['text']))
{
echo "Заполните поля<br/>";
exit();
}
else
{
$mmh = 1;
$querys = "SELECT * FROM `comments` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."' ORDER BY `date` DESC";
$results = mysql_query($querys);
$m = mysql_fetch_array($results);
if((time() - $m['date']) <= ($mmh * 60 ))
{
echo('<p><font style="color: red">Для отправки следующего комментария<br/> вы должны подождать '.ceil((($mmh * 60) - (time() -$m['date'])) / 60).' минуту .</font></p>');
}
else
{
$query = "INSERT INTO `comments` VALUES(NULL, '".$id."', '".$_POST['text']."', '".time()."', '".$_SERVER['REMOTE_ADDR']."')";
if(mysql_query($query))
{
echo "Комментарий добавлен";
}
else
{
exit("Ошибка при добавлении комментария - ".mysql_error());
}
}
}
}
else
{
echo "<font color='red'>Неправильный код</font>";
}
}
}
|
В верхнем коде $do = $_GET['do'] , $id = $_GET['id'] и т.п.....
Ниже код js которым я пытаюсь выполнить гет и пост запрос сразу :)
function addcomment(id, text, captcha)
{
$.post("index.php?do=comments", { id: id, text : text, captcha : captcha },
function(data)
{
document.getElementById("main").innerHTML = data;
});
}
|
Вообщем проблема вот в чем...
Надо вывести комментарий сразу на аяксе...при этом надо сделать проверку что идет гет запрос do=comments в котором уже идет проверка на пост запрос POST['add'] и уже добавление данных в таблицу и вывод их на страницу...
Дело в том что не выводит ничего...естественно понятно что не выполняется пост запрос :(
Второй вопрос....У меня все находится в индекс.пхп файле...
Т.е. на главной вывод новстей..через гет запрос просмотр конкретной новости, переход по страницам и т.п.(это все на аяксе - без перезагрузки страницы)...
Обнаружил проблему что при захождении на страницу добавления коментов там где капча - она не перезагружается...
Я так понял что это связано с тем что мы все делаем на аяксе....Так вот скажите....перезагружаются ли сессии когда мы ходим на аяксе...если да, то как мне перезагружать картинку? | |
|
|
|
|
|
|
|
для: SnooPI
(13.12.2007 в 07:02)
| | Помогите пожалуйста..
Сутки не могу справиться... | |
|
|
|
|
|
|
|
для: SnooPI
(13.12.2007 в 07:02)
| | Очень нужно...пожалуйста | |
|
|
|