Доброго дня! Суть в том, что мне задали написать курсовик и сделать онлайн голосование. Есть логин система, где студента берут из базы.. Кандидаты тоже храняться в базе.. Я долго мучался как бы отправить голос в базу ии тут в интернете нашел способ с ajax На ксрине есть есть имя/фамилия/факультет ии лайки/дислайки По нажатию лайка/дислайка имя пропадает (благодаря ajax) Ноо если обновить страничку, то это имя опять высвечивается... Можно попросить дописать скрипт на проверку, что голосует всего один раз (или подсказать другую идею) как бы исправить эту ошибку.. Сам от ajax понимаю только 1-2 % из всей системы... вот сам скрипт, который делает, чтоб имя исчезал Код (Text): <script type='text/javascript' src='jquery.pack.js'></script> <script type='text/javascript'> $(function(){ $("a.vote_up").click(function(){ //get the id the_id = $(this).attr('id'); // show the spinner $(this).parent().html("<img src='images/spinner.gif'/>"); //fadeout the vote-count $("span#votes_count"+the_id).fadeOut("fast"); //the main ajax request $.ajax({ type: "POST", data: "action=vote_up&id="+$(this).attr("id"), url: "votes.php", success: function(msg) { $("span#votes_count"+the_id).html(msg); //fadein the vote count $("span#votes_count"+the_id).fadeIn(); //remove the spinner $("span#vote_buttons"+the_id).remove(); } }); }); $("a.vote_down").click(function(){ //get the id the_id = $(this).attr('id'); // show the spinner $(this).parent().html("<img src='images/spinner.gif'/>"); //the main ajax request $.ajax({ type: "POST", data: "action=vote_down&id="+$(this).attr("id"), url: "votes.php", success: function(msg) { $("span#votes_count"+the_id).fadeOut(); $("span#votes_count"+the_id).html(msg); $("span#votes_count"+the_id).fadeIn(); $("span#vote_buttons"+the_id).remove(); } }); }); }); </script> вот вывод кандидатов из базы на php+mysql (вдруг пригодится) Код (Text): <table width="600" border="0"> <tr style="font-weight: bold; font-size: 20px;"> <!--<th>Name</th> <th>Surname</th> <th>Faculty</th> <th>+ / -</th>--> </tr> <?php require("connectme.php"); $q = "SELECT * FROM candidate"; $r = mysql_query($q); if(mysql_num_rows($r)>0) //table is non-empty { while ($row = mysql_fetch_array($r)) { $id = $row['id']; $candidate_name = $row['candidate_name']; $candidate_surname = $row['candidate_surname']; $candidate_faculty = $row['candidate_faculty']; $net_vote = $row['votes_up'] - $row['votes_down']; ?> <tr> <th><span class="vote_buttons" id="vote_buttons<?php echo $row['id']; ?>"><?php echo $candidate_name; ?></span></th> <th><span class="vote_buttons" id="vote_buttons<?php echo $row['id']; ?>"><?php echo $candidate_surname; ?></span></th> <th><span class="vote_buttons" id="vote_buttons<?php echo $row['id']; ?>"><?php echo $candidate_faculty; ?></span></th> <th> <span class="vote_buttons" id="vote_buttons<?php echo $row['id']; ?>"> <a href="javascript:;" class="vote_up" id="<?php echo $row['id']; ?>"> <img src="images/Like.png"> </a> <a href="javascript:;" class="vote_down" id="<?php echo $row['id']; ?>"> <img src="images/Dislike.png"> </a> </span> </th> </tr> <?php }#hile }//if ?> </table> а вот сам votes.php, где берет инфу, считывает и записывает в базу Код (Text): <?php require ("connectme.php"); function getAllVotes($id) { $votes = array(); $q = "SELECT * FROM candidate WHERE id = $id"; $r = mysql_query($q); if(mysql_num_rows($r)==1)//id found in the table { $row = mysql_fetch_assoc($r); $votes[0] = $row['votes_up']; $votes[1] = $row['votes_down']; } return $votes; } function getEffectiveVotes($id) { $votes = getAllVotes($id); $effectiveVote = $votes[0] - $votes[1]; return $effectiveVote; } $id = $_POST['id']; $action = $_POST['action']; $cur_votes = getAllVotes($id); if($action=='vote_up') { $votes_up = $cur_votes[0]+1; $q = "UPDATE candidate SET votes_up = $votes_up WHERE id = $id"; } else if($action=='vote_down') { $votes_down = $cur_votes[1]+1; $q = "UPDATE candidate SET votes_down = $votes_down WHERE id = $id"; } $r = mysql_query($q); if($r) { $effectiveVote = getEffectiveVotes($id); echo $effectiveVote." votes"; } elseif(!$r) { echo "Failed!"; } ?> вот скрин когда заходит и выводит всех кандидатов, и по нажатию лайка имя пропадает: надеюсь на вашу помощь, ибо реально, всю малину портит то, что после рефреша страницы именя появляются еще раз
спасибо, проблему решил с помощью php а другое дело, возможно вывести определенное сообщение после того, как последнее имя из бд было записано (в моем случае после нажатия лайка оно пропало и появилось новое сообщение)?
Вешайте на кнопку обработчик на JS, который в определенный элемент на странице выведет ваше сообщение и еще что угодно.