[ KumRusvelt @ 24.12.2010. 18:04 ] @
Pozdrav svima, pre nekoliko dana skinuo sam tutorijal koji obrađuje anketu, urađen je u kombinaciji sa jqueri plug in-om i pratećom js skriptom što daje prilično dobru animaciju anketnog rezultata, ali kada simuliram prosleđivanje upita javlja mi upozorenje ovoga tipa: Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\mysite\poll.php:2) in C:\xampp\htdocs\mysite\poll.php on line 42 poll.php skripta izgleda ovako: Code: <?php //Update database information according to your server settings $conn=mysql_connect('localhost', 'root', '') or die("Can't connect to mysql host"); //Select the database to use mysql_select_db('mysite') or die("Can't connect to DB"); if(!$_POST['poll'] || !$_POST['pollid']){ $query=mysql_query("SELECT id, ques FROM questions ORDER BY id DESC LIMIT 1"); while($row=mysql_fetch_assoc($query)){ //display question echo "<p class=\"pollques\" >".$row['ques']."</p>"; $poll_id=$row['id']; } if($_GET["result"]==1 || $_COOKIE["voted".$poll_id]=='yes'){ //if already voted or asked for result showresults($poll_id); exit; } else{ //display options with radio buttons $query=mysql_query("SELECT id, value FROM options WHERE ques_id=$poll_id"); if(mysql_num_rows($query)){ echo '<div id="formcontainer" ><form method="post" id="pollform" action="'.$_SERVER['PHP_SELF'].'" >'; echo '<input type="hidden" name="pollid" value="'.$poll_id.'" />'; while($row=mysql_fetch_assoc($query)){ echo '<p><input type="radio" name="poll" value="'.$row['id'].'" id="option-'.$row['id'].'" /> <label for="option-'.$row['id'].'" >'.$row['value'].'</label></p>'; } echo '<p><input type="submit" value="Submit" /></p></form>'; echo '<p><a href="'.$_SERVER['PHP_SELF'].'?result=1" id="viewresult">View result</a></p></div>'; } } } else{ if($_COOKIE["voted".$_POST['pollid']]!='yes'){ //Check if selected option value is there in database? $query=mysql_query("SELECT * FROM options WHERE id='".intval($_POST["poll"])."'"); if(mysql_num_rows($query)){ $query="INSERT INTO votes(option_id, voted_on, ip) VALUES('".$_POST["poll"]."', '".date('Y-m-d H:i:s')."', '".$_SERVER['REMOTE_ADDR']."')"; if(mysql_query($query)) { //Vote added to database setcookie("voted".$_POST['pollid'], 'yes', time()+86400*300); } else echo "There was some error processing the query: ".mysql_error(); } } showresults(intval($_POST['pollid'])); } function showresults($poll_id){ global $conn; $query=mysql_query("SELECT COUNT(*) as totalvotes FROM votes WHERE option_id IN(SELECT id FROM options WHERE ques_id='$poll_id')"); while($row=mysql_fetch_assoc($query)) $total=$row['totalvotes']; $query=mysql_query("SELECT options.id, options.value, COUNT(*) as votes FROM votes, options WHERE votes.option_id=options.id AND votes.option_id IN(SELECT id FROM options WHERE ques_id='$poll_id') GROUP BY votes.option_id"); while($row=mysql_fetch_assoc($query)){ $percent=round(($row['votes']*100)/$total); echo '<div class="option" ><p>'.$row['value'].' (<em>'.$percent.'%, '.$row['votes'].' votes</em>)</p>'; echo '<div class="bar '; if($_POST['poll']==$row['id']) echo ' yourvote'; echo '" style="width: '.$percent.'%; " ></div></div>'; } echo '<p>Total Votes: '.$total.'</p>'; } ?> Napomenuo bih da je linija 42 poll.php setcookie("voted".$_POST['pollid'], 'yes', time()+86400*300); A izdvojio sam iz left_template.php deo vezan za anketu Code: <link rel="stylesheet" type="text/css" href="styles.css" /> <script type="text/javascript" src="js/jquery-1.3.2.js" ></script> <script type="text/javascript" > $(function(){ var loader=$('#loader'); var pollcontainer=$('#pollcontainer'); loader.fadeIn(); //Load the poll form $.get('poll.php', '', function(data, status){ pollcontainer.html(data); animateResults(pollcontainer); pollcontainer.find('#viewresult').click(function(){ //if user wants to see result loader.fadeIn(); $.get('poll.php', 'result=1', function(data,status){ pollcontainer.fadeOut(1000, function(){ $(this).html(data); animateResults(this); }); loader.fadeOut(); }); //prevent default behavior return false; }).end() .find('#pollform').submit(function(){ var selected_val=$(this).find('input[name=poll]:checked').val(); if(selected_val!=''){ //post data only if a value is selected loader.fadeIn(); $.post('poll.php', $(this).serialize(), function(data, status){ $('#formcontainer').fadeOut(100, function(){ $(this).html(data); animateResults(this); loader.fadeOut(); }); }); } //prevent form default behavior return false; }); loader.fadeOut(); }); function animateResults(data){ $(data).find('.bar').hide().end().fadeIn('slow', function(){ $(this).find('.bar').each(function(){ var bar_width=$(this).css('width'); $(this).css('width', '0').animate({ width: bar_width }, 1000); }); }); } }); </script> <div id="container" > <h1>User Poll</h1> <div id="pollcontainer" > </div> <p id="loader" >Loading...</p> </div> Bio bih zahvalan na pomoći. |