Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: AJAX POST & GET сразу + вывод...
 
 автор: SnooPI   (13.12.2007 в 07:02)   письмо автору
 
 

Вообщем тему назвал так т.к. имеется несколько вопросов...

Необходимо сделать так чтобы и гет и пост запрос выполнились сразу на аяксе...
Использую 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">&nbsp;</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 в 16:36)   письмо автору
 
   для: SnooPI   (13.12.2007 в 07:02)
 

Помогите пожалуйста..
Сутки не могу справиться...

   
 
 автор: SnooPI   (14.12.2007 в 11:31)   письмо автору
 
   для: SnooPI   (13.12.2007 в 07:02)
 

Очень нужно...пожалуйста

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования