За последние 24 часа нас посетили 16602 программиста и 1681 робот. Сейчас ищут 903 программиста ...

после нажатия проверяет есть ли последний ID

Тема в разделе "PHP и базы данных", создана пользователем 3ay4ka, 3 окт 2014.

  1. 3ay4ka

    3ay4ka Новичок

    С нами с:
    19 сен 2014
    Сообщения:
    27
    Симпатии:
    0
    В общем, у меня есть кандидаты, которых выводят... По нажатию на картинку, которая образована как кнопка, которая перекидывает на javascript (а там с помощью ajax после нажатия имя исчезает)

    Код (Text):
    1. <span class="vote_buttons" id="vote_buttons<?php echo $row['id']; ?>">
    2.                 <a href="javascript:;" class="vote_up" id="<?php echo $row['id']; ?>">
    3.                     <img src="images/Like2.png">
    4.                 </a>
    5.                 <a href="javascript:;" class="vote_down" id="<?php echo $row['id']; ?>">
    6.                     <img src="images/Dislike2.png">
    7.                 </a>
    8.                 <a href="javascript:;" class="vote_neutral" id="<?php echo $row['id']; ?>">
    9.                     <img src="images/neutral2.png">
    10.                 </a>
    11. </span>
    вот так выглядит код кнопок, которые на скрине

    Код (Text):
    1. <script type="text/javascript">
    2. $(function(){
    3.     $("a.vote_neutral").click(function(){
    4.     //get the id
    5.     the_id = $(this).attr('id');
    6.    
    7.     // show the spinner
    8.     $(this).parent().html("<img src='images/spinner.gif'/>");
    9.    
    10.     //fadeout the vote-count
    11.     $("span#votes_count"+the_id).fadeOut("fast");
    12.    
    13.     //the main ajax request
    14.         $.ajax({
    15.             type: "POST",
    16.             data: "action=vote_neutral&id="+$(this).attr("id"),
    17.             url: "votes.php",
    18.             success: function(msg)
    19.             {
    20.                 $("span#votes_count"+the_id).html(msg);
    21.                 //fadein the vote count
    22.                 $("span#votes_count"+the_id).fadeIn();
    23.                 //remove the spinner
    24.                 $("span#vote_buttons"+the_id).remove();
    25.             }
    26.         });
    27.     });
    28.    
    29.     $("a.vote_up").click(function(){
    30.     //get the id
    31.     the_id = $(this).attr('id');
    32.    
    33.     // show the spinner
    34.     $(this).parent().html("<img src='images/spinner.gif'/>");
    35.    
    36.     //fadeout the vote-count
    37.     $("span#votes_count"+the_id).fadeOut("fast");
    38.    
    39.     //the main ajax request
    40.         $.ajax({
    41.             type: "POST",
    42.             data: "action=vote_up&id="+$(this).attr("id"),
    43.             url: "votes.php",
    44.             success: function(msg)
    45.             {
    46.                 $("span#votes_count"+the_id).html(msg);
    47.                 //fadein the vote count
    48.                 $("span#votes_count"+the_id).fadeIn();
    49.                 //remove the spinner
    50.                 $("span#vote_buttons"+the_id).remove();
    51.             }
    52.         });
    53.     });
    54.    
    55.     $("a.vote_down").click(function(){
    56.     //get the id
    57.     the_id = $(this).attr('id');
    58.      
    59.     // show the spinner
    60.     $(this).parent().html("<img src='images/spinner.gif'/>");
    61.    
    62.     //the main ajax request
    63.         $.ajax({
    64.             type: "POST",
    65.             data: "action=vote_down&id="+$(this).attr("id"),
    66.             url: "votes.php",
    67.             success: function(msg)
    68.             {
    69.                 $("span#votes_count"+the_id).fadeOut();
    70.                 $("span#votes_count"+the_id).html(msg);
    71.                 $("span#votes_count"+the_id).fadeIn();
    72.                 $("span#vote_buttons"+the_id).remove();
    73.             }
    74.         });
    75.     });
    76. });
    77. </script>

    а вот так сам скрипт

    ну и вот,
    после нажатия лайка/дислайка он определяет ID кандидата и в отдельном файле votes.php делает апдейт и записывает +1/-1 голос,

    помощь собственно нужна в том, что он каждый раз проверяет есть ли это последний кандидат (по ид)
    вот нашел такую вещь

    Код (Text):
    1. <?php
    2. $result2 = mysql_query("SELECT MAX(id) FROM candidate");
    3. $row2 = mysql_fetch_row($result2);
    4. $highest_id = $row2[0];
    5. ?>
    ВОТ С ЭТИМ ВОТ ЗАПРОСОМ (или каким-то другим) НАДО СДЕЛАТЬ ПРОВЕРКУ, если нажал лайк/дислайк и он оказался последний,
    то он перекидывает на другую страницу
    и говорит "Спасибо, ваше голосование принято";
    как-то так,
    надеюсь меня понялии,

    как будет выглядеть эта проверка и где именно ее делать?
     
  2. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Вы лучше объясните, какую задачу пытаетесь решить. Не "чтобы в файле таком-то такой-то переменной что-то присвоить", а "сделать голосовалку, чтобы там можно было это и нельзя было то".
     
  3. 3ay4ka

    3ay4ka Новичок

    С нами с:
    19 сен 2014
    Сообщения:
    27
    Симпатии:
    0
    Хмм, ну у меня есть студенты, которые голосуют. Заходят через логин систему, все дела.

    После логина из базы достается список кандидатов (на скрине)

    [​IMG]

    Ну и вот, по нажатию лайка это имя пропадает,
    остается три (в реале их будет больше, это я сейчас написал всего четырех для примера)

    Ну и вот, после нажатия на последнего, когда студентов больше нет, он либо перебрасывает на другую страничку (допустим файл logout.php), где есть текст "Спасибо за голосование", либо на той же страничке после последнего лайка/дислайка он выдает текст "спасибо за..."
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    так вроде тебе надо не какого-то "последнего" определять, а "не пустой ли список". не?
     
  5. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Я бы сделал так:
    При клике на +/- - уходит аяксом ID кандидата и результат голосования, возвращается список тех, за кого еще не проголосовали. Если список пустой - уходим редиректом на другую страницу.
     
  6. 3ay4ka

    3ay4ka Новичок

    С нами с:
    19 сен 2014
    Сообщения:
    27
    Симпатии:
    0
    можно и пустой список, он как определить?
    с ajax`ом, JS не дружу,
    php тоже только начал изучать,
    подскажите как это реализовать можно?
    а как сделать уход аяксом?
    выше писал, что его не знаю, это готовой скрипт взял,
    можете пожалуйста написать за меня, буду очень благодарен
     
  7. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Можно. Но не хочно. Попробуйте сами, почитайте документацию, что непонятно - спросите. Сказать "сделайте за меня" проще всего.
    Я бы сделал так:
    Код (Text):
    1.  
    2. <?php $id = $row['id']; ?>
    3. <span class="vote_buttons" id="vote_buttons<?=$id ?>">
    4.             <a class="vote_up vote" id="<?=$id ?>_up"><img src="images/Like2.png"></a>
    5.             <a class="vote_down vote" id="<?=$id ?>_down"><img src="images/Dislike2.png"></a>
    6.             <a class="vote_neutral vote" id="<?=$id ?>_neutral"><img src="images/neutral2.png"></a>
    7. </span>
    А потом всем элементам с class=vote повесить на клик $.ajax({url: 'my_script.php', data: this.id});