Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa anketom

[es] :: PHP :: PHP za početnike :: Problem sa anketom

[ Pregleda: 1024 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

KumRusvelt
Božidar Mirković
Beograd, Srbija

Član broj: 248295
Poruke: 18
*.dynamic.isp.telekom.rs.



Profil

icon Problem sa anketom24.12.2010. u 18:04 - pre 162 meseci
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.
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.dynamic.isp.telekom.rs.



+19 Profil

icon Re: Problem sa anketom24.12.2010. u 22:08 - pre 162 meseci
Šta ti je u drugom redu ove skripte? To ti šalje problematičan output.
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

Gost




Profil

icon Re: Problem sa anketom24.12.2010. u 22:41 - pre 162 meseci
U drugom redu stoji početni tag php, ja sam malo čačkao po sličnim problemima na inostranim forumima pa sam naišao na jedan gde daje neka objašnjenja koja bi po prirodi stvari odgovarao ovom problemu koji sam izneo, ali sam slab sa engleskim, a google translate mi i nije od neke pomoći. Evo linka http://www.phpfreaks.com/forum...read-here-before-posting-them/, posebno obratiti pažnju na krajnji tekst gde objašnjava neke veze sa utf8 encode, sobzirom da sam u bazu tabele question ubacio opcije koje imaju u textu slova č,š,ć, te pretpostavljam da mi to stvara najveći problem, ne znam možda grešim.

Pozdrav.
 
Odgovor na temu

KumRusvelt
Božidar Mirković
Beograd, Srbija

Član broj: 248295
Poruke: 18
*.dynamic.isp.telekom.rs.



Profil

icon Re: Problem sa anketom24.12.2010. u 22:43 - pre 162 meseci
U drugom redu stoji početni tag php, ja sam malo čačkao po sličnim problemima na inostranim forumima pa sam naišao na jedan gde daje neka objašnjenja koja bi po prirodi stvari odgovarao ovom problemu koji sam izneo, ali sam slab sa engleskim, a google translate mi i nije od neke pomoći. Evo linka http://www.phpfreaks.com/forum...read-here-before-posting-them/, posebno obratiti pažnju na krajnji tekst gde objašnjava neke veze sa utf8 encode, sobzirom da sam u bazu tabele question ubacio opcije koje imaju u textu slova č,š,ć, te pretpostavljam da mi to stvara najveći problem, ne znam možda grešim.

Pozdrav.
 
Odgovor na temu

KumRusvelt
Božidar Mirković
Beograd, Srbija

Član broj: 248295
Poruke: 18
*.dynamic.isp.telekom.rs.



Profil

icon Re: Problem sa anketom24.12.2010. u 22:59 - pre 162 meseci
Problem je rešen pre početnog taga mi je ostao deo od prethodne skripte u znaku ? i zato mi je javljao gre[ku u drugoj liniji.
Izvinjavam se na mojoj gluposti.
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Problem sa anketom

[ Pregleda: 1024 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.