За последние 24 часа нас посетили 18276 программистов и 1624 робота. Сейчас ищут 1795 программистов ...

Добавление коментария(отзыва) через AJAX

Тема в разделе "JavaScript и AJAX", создана пользователем Good][Man, 8 сен 2009.

  1. Good][Man

    Good][Man Активный пользователь

    С нами с:
    23 авг 2009
    Сообщения:
    35
    Симпатии:
    0
    Адрес:
    eWorld
    Здравствуйте всем нужно добавить отзыв через AJAX.


    Вот код вывода коментариев\отзывов ("то что OFFSET 0 стоит не обращайте внимание это примерный кусок кода"):

    HTML:
    1.  
    2.                                                 <div class="FontOtziv">Отзывы о заведении:</div>
    3.                                                     <div class="HRnah"><hr></div>
    4.  
    5. <?
    6.    $revies_on_page = 2;
    7.  
    8.    $result = mysql_query('SELECT date, text FROM `reviews` WHERE id_restaurant = '.$restaurant_id.' ORDER BY date DESC LIMIT '.$revies_on_page.' OFFSET 0');
    9.  
    10.    if(mysql_num_rows($result)):
    11.  
    12.    while($review = mysql_fetch_object($result)):
    13. ?>
    14.  
    15.                                                     <div class="lAyerOtziv">
    16.                                                             <div class="Avtor">Автор:</div>
    17.                                                             <div class="nameAvtor">unknown</div>
    18.                                                             <div class="DateKOmments">Дата:</div>
    19.                                                             <div class="textDateKOmments"><?=date('d.m.Y', strtotime($review->date))?></div>
    20.                                                             <div class="ras">Отзыв:</div>
    21.                                                             <div class="otzivv"><?=$review->text?></div>
    22.                                                             <hr class="HrForKoments">
    23.                                                             <hr class="HrForKoments2">
    24.                                                     </div>
    25.  
    26. <?
    27.    endwhile;
    28.  
    29.    else:
    30. ?>
    31.                 <p>Пока нет ни одного отзыва об этом заведении. Вы будете первым?</p>
    32. <?
    33.    endif;
    34.  
    35.    $result = mysql_query("SELECT COUNT(*) AS count_of_reviews FROM `reviews` WHERE id_restaurant = $restaurant_id");
    36.  
    37.    $reviews = mysql_fetch_object($result);
    38.  
    39.    $number_of_pages = ceil($reviews->count_of_reviews / 2);
    40.  
    41.  
    42.     if($number_of_pages):
    43. ?>
    44.  
    45.                                                     <div class="stran"><div style="float: left">стр.:&nbsp;</div>
    46.                                                     <a href="" onclick="return false;"><span style="color: red">1</span></a>
    47. <?
    48.                                                    for($i=2;$i<=$number_of_pages;$i++):
    49. ?>
    50.                                                     <a href="" onclick="get_reviews(<?=$restaurant_id?>, <?=($i-1)?>);return false;"><?=$i;?></a>
    51. <?
    52.                                                    endfor;
    53. ?>
    54.  
    55.                                                     </div>
    56.  
    57. <?
    58.    endif;
    59. ?>
    60.                                                         <div class="MyOtziv">Мой отзыв:</div>
    61.                                                         <hr class="">
    62.  
    63. <? if(!isset($_SESSION['uid'])): ?>
    64.                                                         <p>Для добавления отзывов вы должны <a style="display:inline;padding: 0px" href="">войти</a> или <a style="display:inline;padding: 0px;" href="">зарегистрироваться</a>.</p>
    65. <? else: ?>
    66.                                                         <div class="Otziv33">Отзыв:</div>
    67.                                                        
    68.                                                         <textarea name="user_rew"></textarea>
    69.                                                         <!-- <input type="submit" name="send_review" value="Добавить"> -->
    70.                                                         <a href="#">Добавить</a>
    71. <? endif; ?>
    72.                                             </div>
    73.                                         </div>
    74.                                         <div class="bottomotziv">
    75.                                         </div>
    76.                                     </div>
    77.                                 </div>

    функция get_review() js :

    [js]function get_reviews(restaurant_id, page) {
    $('#reviews').hide();
    $('#reviews_indicator').show();

    $.get('./ajax/get_reviews.php?restaurant_id='+restaurant_id+'&page='+page,{}, function(reviews) {
    $('#reviews').html(reviews);

    $('#reviews_indicator').hide();
    $('#reviews').show();
    })
    }[/js]

    Единственный вариант который я вижу это передача текста в теле аякс запроса... типа &text = 'blablabla'..Если другие есть ваританы подскажите именно аяксом. Спасибо.
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    запятые ставь, а то как то... или привет или всем нужно...

    гыгыгы

    получить JSON и сделать что хочешь...
     
  3. Good][Man

    Good][Man Активный пользователь

    С нами с:
    23 авг 2009
    Сообщения:
    35
    Симпатии:
    0
    Адрес:
    eWorld
    мне надо послать от клиента к серверу запрос, а не от сервера к клиенту(как зачастую используется json).я спрашиваю просто как лучше будет.
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    поставить плугин для работы с формами и там все разрулить.
     
  5. Good][Man

    Good][Man Активный пользователь

    С нами с:
    23 авг 2009
    Сообщения:
    35
    Симпатии:
    0
    Адрес:
    eWorld
    например?я пока сделал так создал файл

    add_reviews.php ( в которой происходит запись отзыва)

    и функцию

    [js]
    function add_reviews(restaurant_id) {

    text = $('#review_text').value();
    $.get('./ajax/add_reviews.php?restaurant='+restaurant_id+'text='+text,{}, alert(result));
    }[/js]
     
  6. Good][Man

    Good][Man Активный пользователь

    С нами с:
    23 авг 2009
    Сообщения:
    35
    Симпатии:
    0
    Адрес:
    eWorld
    html:

    HTML:
    1. <textarea name="user_rew" id='review_text' ></textarea>
    2.                                                        
    3. <a href="" onclick="add_review(1);return false;">Добавить</a>
    4.  
    js:

    [js]function add_review(restaurant_id) {
    text = $('#review_text').text();
    alert(text);
    }
    [/js]

    почему-то тест не выводится в алрет
     
  7. Good][Man

    Good][Man Активный пользователь

    С нами с:
    23 авг 2009
    Сообщения:
    35
    Симпатии:
    0
    Адрес:
    eWorld
    HTML:
    1.  <textarea name="user_rew" id='review_text' >test</textarea>
    2.                                                          
    3.  <a href="" onclick="add_review(1);return false;">Добавить</a>
    [js] function add_review(restaurant_id) {
    text = $('#review_text').text();
    alert(text);
    }[/js]

    выводит test....

    Почему он не хочет выводить данные введеные в textarea кто подскажет????
     
  8. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    [js]text = $('#review_text').val();[/js]
     
  9. Good][Man

    Good][Man Активный пользователь

    С нами с:
    23 авг 2009
    Сообщения:
    35
    Симпатии:
    0
    Адрес:
    eWorld
    да уже исправил;)ну всёровно спасибо;) порылся в нете всё нашел;)
     
  10. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    [js] $.ajax({
    type: "POST",
    url: "some.php",
    data: "name=John&location=Boston",
    success: function(msg){
    alert( "Data Saved: " + msg );
    }
    });[/js]
     
  11. Good][Man

    Good][Man Активный пользователь

    С нами с:
    23 авг 2009
    Сообщения:
    35
    Симпатии:
    0
    Адрес:
    eWorld
    Кос это к чему?))я конечно за то что ты захотел чем-то помочь;)но jquery.com я в состоянии открыть и посмотреть как использовать аякс ф-ции
     
  12. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    меня смутило то, что ты через GET хотел сабмитить коммент
     
  13. Good][Man

    Good][Man Активный пользователь

    С нами с:
    23 авг 2009
    Сообщения:
    35
    Симпатии:
    0
    Адрес:
    eWorld
    и что ты в этом видишь смертельного?