[jQuery] - Задай вопрос, получи ответ

Discussion in 'PHP' started by banned, 20 Apr 2008.

  1. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    помогите создать запрос на JQUERY:

    1. POST передача
    2. Прогресс бар чтобы получало под ид (id="bar")
    3. чтобы передавало данные в файл jres.php
    4. Передавало id=4 (4 это любая цифра)
    5. И как оно результат будет выводить? Мне надо чтобы например просто писало echo"Город выбран"; и всё...

    спасибо всем кто поможет... я заодно и научусь делать пост запросы через эту библиотеку)
     
  2. diGriz

    diGriz Elder - Старейшина

    Joined:
    11 Oct 2006
    Messages:
    138
    Likes Received:
    82
    Reputations:
    6
    Не совсем понял что ты хочешь сделать с прогрес бар, покажу тебе основную суть, со списками. Дальше самому не сложно разобраться.


    PHP:
    <script src='js/jquery.js' type='text/javascript'></script>
            <script type="text/javascript">
            $(document).ready(function(){
                       showCitiesById($('#cityId').val());
                                   
                 });
            function showCitiesById (val) {
                $.ajax({
                type: "POST",
                url: "jres.php",
                data: "cityId="+val,
                success: function(html){
                    $("#cityContainer").html(html);
                }
            });
            }
        </script>
        
        
    <select name="cityId" id="cityId" onchange="showCitiesById(this.value)">
                        <option value="Moscow">Moscow</option>
                        <option value="Vegas">Vegas</option>
    </select>    
    <!--Здесь выводим -->
    <div id="cityContainer">

    </div>
    файл jres.php
    PHP:
    <?php
    //Здесь обрабатываешь полученные данные, заносишь в бд и т. д.
    $cityId $_POST['cityId'];
    echo 
    "Сейчас выбран город: " $cityId;
    ?>
     
    #42 diGriz, 16 Jul 2009
    Last edited: 16 Jul 2009
    6 people like this.
  3. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    спасиб... а как бы сделать чтобы картинку загрузки туда прикрутить к запросу?
     
  4. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    Code:
     $("#loading").ajaxStop(function(){  
       $(this).hide();  
      });  
    ток куда это в запросе засунуть?
     
  5. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    а так можно сделать запрос?

     
  6. diGriz

    diGriz Elder - Старейшина

    Joined:
    11 Oct 2006
    Messages:
    138
    Likes Received:
    82
    Reputations:
    6
    Берешь картинку отсюда http://ajaxload.info/. Далее задаем событие при клике по кнопке, на сколько я понял у тебя будут передаваться данные из формы. Потом добавляем в контейнер, картинку с того сайта и передаем данные. Делаем эффект fadeout убераем картинку.


    PHP:
      <html>
    <
    head>
        <
    title></title>
        <
    script src='js/jquery.js' type='text/javascript'>
        <
    script type="text/javascript">
         $(function() {
                $(
    '#submit').click(function() {
                $(
    '#container').append('<img src="loading.gif" alt="Идет загрузка" id="loading" />');
                var 
    name = $('#name').val();
                
                $.
    ajax({
                        
    url'jres.php',
                        
    type'POST',
                        
    data'name=' name,
                        
                        
    success: function() {
                            $(
    '#loading').fadeOut(500, function() {
                                $(
    this).remove();
                            });
                        }
                    });
                    
                    return 
    false;
                    });
                });
    </script>
    </head>
    <body>
       <div id="container">
       <input type="text" name="name" id="name"/>
            <input type="submit" name="submit" id="submit" value="Go" />
        </div>
    </body>
    </html>
     
  7. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    ммм, я понял, ток у меня через селект как ты первый раз делал функцию...
     
  8. diGriz

    diGriz Elder - Старейшина

    Joined:
    11 Oct 2006
    Messages:
    138
    Likes Received:
    82
    Reputations:
    6

    PHP:
    <script src='js/jquery.js' type='text/javascript'></script>
    <script type="text/javascript">
            $(document).ready(function(){
                   showCitiesById($('#cityId').val());
                                   
                 });
            function showCitiesById (val) {
            $('#container').append('<img src="loading.gif" alt="Loading..." id="loading" />');
            
                $.ajax({
                type: "POST",
                url: "jres.php",
                data: "cityId="+val,
                success: function(html){
                $("#cityContainer").html(html);
                $('#loading').fadeOut(500, function() {
                                $(this).remove();
                            });
                }
            });
            }
        </script>
        
    <div id="container">
    <select name="cityId" id="cityId" onchange="showCitiesById(this.value)">
                        <option value="Moscow">Moscow</option>
                        <option value="Vegas">Vegas</option>
    </select>

    </div>    
    <!--Здесь выводим -->
    <div id="cityContainer">

    </div>
     
    #48 diGriz, 16 Jul 2009
    Last edited: 16 Jul 2009
  9. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    супер!!!! спс!!!!
     
  10. FeraS

    FeraS Elder - Старейшина

    Joined:
    19 Jan 2007
    Messages:
    555
    Likes Received:
    420
    Reputations:
    76
    Пацаны, проблема такая: на странице есть кнопка Открыть. При нажатии на нее появляется (с помощью jquery) блок, а сама кнопка прячется (slideUp).
    Если я в этом состоянии обновлю страницу, то, естественно, все вернется, т.е. кнопка будет, блока нет.

    Надо сделать так, чтобы при нажатии на батон в куку записывалось состояние блока (видим\невидим) и также кнопки (видима\невидима). Т.е. при обновлении страницы это состояние считывается из куки и все ок отображается.

    + в блоке, который открывается, есть кнопка Закрыть, при нажатии на которую этот блок закрывается и появляется наша кнопка Открыть, и кука удаляется.

    Никак мне это не организовать :(
     
  11. Andres

    Andres Elder - Старейшина

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    Чего тему "важной" ни сделают? о_О
     
  12. diGriz

    diGriz Elder - Старейшина

    Joined:
    11 Oct 2006
    Messages:
    138
    Likes Received:
    82
    Reputations:
    6
    2 Feras

    Немного коряво написал, времени мало было. Для работы тебе еще понадобится jquery.cookie.js .


    PHP:
    <html>
    <
    head>
      <
    script src="./js/jquery.js"></script>
      <script src="./js/jquery.cookie.js"></script>
      <script>
      $(function(){ 
          //Если нажата кнопка open и есть кука
          if ($.cookie('submitOpen-' + 1)) {
              $('#close').show("slow");
              $('#open').css("display","none");
          }
      $('#open').click(function() { 
             cookieSet(1);
            $('#open').slideUp();
            $('#close').show("slow");
            
              });
      $('#close').click(function() { 
          cookieDel(1);
          $('#close').slideUp();
          $('#open').show("slow");
      });
    });
      function cookieSet(index) {
          $.cookie('submitOpen-' + index, 'open', {expires: null, path: '/'});
        }
        function cookieDel(index) {
          $.cookie('submitOpen-' + index, null, {expires: null, path: '/'});
        }
      </script>
    </head>
    <body>
      <div>
          <input type="submit" name="open" id="open" value="open" /> 
      </div>
      <div>
          <input type="submit" name="close" id="close" value="close" style="display:none"/> 
      </div>
    </body>
    </html>
     
    1 person likes this.
  13. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Други, помощь треба:)

    Чтобы долго не расписывать, есть типо сайт анекдотов, с форумом и etc, есть система голосования за каждый анек, вопрос:

    Система рабочая, но не красивая - т.е. при выставлении оценки анекдоту происходит открытие lala.php, в котором через GET цепляются ID анекдота и его оценка, потом обычные sql-запросы, после чего скрипт автоматически самозакрывается, но всё равно экран дергается и всё такое, как привязать сюда Jquery? Т.е. чтобы проголосовал и ничего не открывалось и не всплывало, а просто молча происходила обработка оценки и менялся рейтинг анекдота

    С jquery дело имел только один раз, в форме авторизации, проверка логина на существоание в БД также без перезагрузки, умом как бы понимаю, что да как, но реализовать не могу - тут формы нет.

    Чтобы было понятно, о чем речь, вот сайт, где это надо сделать:
    Code:
    http://old-ostrie.ru/kucha-0.html
    
    Буду признателен за любые наводки в тему

    ЗЫЖ В гугле "jquery система рейтинга" набирал, пост в этой теме про баш читал, но всё равно мало информации

    id и выставленный балл чётко могу зацепить, но на php
     
    #53 Pashkela, 23 Jul 2009
    Last edited: 23 Jul 2009
  14. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    Code:
    fucntion set_rate(id, rate)
    {
      $.ajax(
      {
        type:"POST",
        url:"set_rate.php",
        data:"id=" + id + "&rate=" + number,
        success:function(response)
                {
                  $("#rate_show").val(response); //элементу с id="rate_show" присваиваем новый рейтинг
                }
      }
      );
    }
    
    set_rate.php
    PHP:
    <?php

    if (isse($_POST['id']) && isse($_POST['rate']))
    {
      
    $query 'UPDATE table SET rate=(rate + ' $_POST['rate'] . ')/0.9) WHERE id="' $_POST['id'] . '"';
      
    mysql_query($query);
      
      
    $query 'SELECT * FROM table WHERE id="' $_POST['id'] . '"';
      
    $result mysql_query($query);
      
    $fetch mysql_fetch_array($result);
      
      echo(
    $result);
    }

    ?>
    где-то так
     
    #54 FireFenix, 24 Jul 2009
    Last edited: 24 Jul 2009
  15. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    но есть же еще форма вывода, сама kucha-0.html, типо в ней что, ничего менять не надо???
     
  16. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Если посмотреть на "Зацени анекдот: [1] [2] [3] [4] [5]"

    и подвести мышь к [1] например, то будет такая ссылка высвечена (в опере по крайней мере:

    http://old-ostrie.ru/ocenka-5623-1.html

    где 5623 - это ID анека
    а 1 - это выставляемая оценка

    треба пример с AJAX чтобы происходила передача ID и выставленной оценки в файл ocenka.php, он бы делал то, что и сейчас делает - т.е. просто апгрейтит базу, прибавляет баллы за анекдом по его ID, но без загрузки самого ocenka.php + без перезагрузки страницы чтобы менялся (сразу) рейтинг анекдота
     
  17. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    index.html
    Code:
    <head>
    <script type="text/javascript" src="jquery.js"></script>
    </head>
    
    <script language="javascript">
    
    function set_rate(id, rate)
    {
      $.ajax(
      {
        type:"POST",
        url:"rate.php",
        data:"id=" + id + "&rate=" + rate,
        success:function(response)
                {
                  $("#rate_show").html(response); //диву с id="rate_show" меняем контент на обновлённое количество голосов
                  $("#vote").html("Проголосованно"); //диву с id="vote" меняем контент (линки голосования) на "Проголосованно"
                }
      }
      );
    }
    
    </script>
    
    Рейтинг : <div id="rate_show" style="display:inline">[10]</div>
    <br>
    Великий русский полководец Суворов, одержав победу в сражении при Рымниках, во время Русско-Турецкой войны 1787-1792 г. , получил наименование Суворов-Рымникский. Григорий Потёмкин, добравшись до Крыма, получил от Екатерины титул князя и наименование Потёмкин-Таврический.
    А вот дошёл бы Маршал Жуков до Колорадо...
    <br>
    <div id="vote">
      Зацени анекдот :<br>
      <a href="javascript:set_rate(5623, 1);">[1]</a>&nbsp;
      <a href="javascript:set_rate(5623, 2);">[2]</a>&nbsp;
      <a href="javascript:set_rate(5623, 3);">[3]</a>&nbsp;
      <a href="javascript:set_rate(5623, 4);">[4]</a>&nbsp;
      <a href="javascript:set_rate(5623, 5);">[5]</a>
    </div>  
    
    rate.php
    PHP:
    <?php

    echo ($_POST['id'] . ' - ' $_POST['rate']);
    //любые операции с полученным контентом

    ?>
    1) добавить див в количество голосов анека (или другой эелмент)
    2) добавить див для голосования под текстом
    3) добавить адресс ссылок на JS ну и как-нить передевать id + rate
     
    #57 FireFenix, 24 Jul 2009
    Last edited: 24 Jul 2009
  18. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Непонятно, ничего не происходит, в rate.php даже прописал открытие файла - ничего не создается, как будто по нажатию кнопки обращение к rate.php вообще не производится.
     
  19. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    В аське получше общаться:) Большое спасибо, теперь понял. Риспект
     
  20. Solker

    Solker Elder - Старейшина

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    Вопрос, структура HTML вот такая:
    Code:
    <table class="contentpaneopen">
    	<tbody><tr>
    		<td class="contentheading" width="100%"><span>НАЗВАНИЕ 2<span></a></td>
    	</tr></tbody>
    </table>
    
    <div class="desc">
    ОПИСАНИЕ 2
    </div>
    
    <table class="contentpaneopen">	
    	<tbody><tr>		
    		<td class="contentheading" width="100%"><span>НАЗВАНИЕ 1<span></td>	
    	</tr></tbody>
    </table>
    
    <div class="desc">
    ОПИСАНИЕ 1
    </div>
    
    Задумка, что бы при нажатии на Название # (span), открывалось содержимое <div class="desc">, но только того, над которым было нажато название.
    По умолчанию описание все скрыто
    $(.desc).hide();

    По необходимости можно изменить структуру HTML.