Poll Problem...

köNICK

Grünschnabel
Guten Abend,
Ich habe ein Problem! Ich habe auf meiner Seite einen Poll:
http://www.nick-linger.de/test/
den habe ich included, aber wenn ich dann gevotet habe soll er sich in der selben tabelle öffnen in der man auch gevotet hat! Wie stelle ich das bitteschön an? :(

Ich hoffe einer kann mir helfen! Wäre sehr nett, weil als lösung nen iframe benutzen zu müssen würde mir stinken!

Danke........
 
versteh ich das richtig so, dass du zuerst in einer zelle die vote optionen anzeigen möchtest und dann wenn man gevotet hat in der selben zeile das ergebnis?
da fallen mir so auf anhieb zwei möglichkeiten ein:
1.
du speicherst bei einem vote immer mit ab, wer gevotet hat (mit cookie oder so) und in deinem code baust du ne if abfrage ein: wenn er schon gevotet hat das ergebnis anzeigen, wenn nicht, dann die optionen
(wahrscheinlich die umständlichere)


2.
wenn man auf submit klickt bei den optionen wird ja wahrscheinlich die seite neu geladen, jetzt musst du nur beim neuladen den code auswechseln optionen -> ergebnis.
 
kP was ich im formtag eingeben muss!

Also hier der Code der Vote Seite(poll_vote.php):
PHP:
<?php 
   include "common.inc";
   echo "<link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\">";
   $DOC = "poll_vote.php";

   if( !isset($id) )
      $id = $HTTP_GET_VARS['id']; 
   if( isset($id) ) 
   {
       dbconnect();   
       if( $HTTP_GET_VARS['action']=="vote" )
       {
          if( $HTTP_POST_VARS['a_id']!=0 )
          {
              $host = gethostbyaddr($HTTP_SERVER_VARS["REMOTE_ADDR"]);
              $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
              $time = make_MySQL_Time( (time()-$SPAM_DELAY) );
              $query = "SELECT COUNT(*) FROM ".$TABLE_PREFIX."votes ";
              $query .= "WHERE q_id='$id' AND host='$host' AND date>'$time'";
              $result = mysql_query($query);
              $anz=0;
              list($anz) = mysql_fetch_row($result);
              if( $anz==0 )
              {
                  $query =  "INSERT INTO ".$TABLE_PREFIX."votes (q_id,a_id,host,ip) VALUES ('$id','".
                            $HTTP_POST_VARS['a_id'] ."','$host','$ip')";
                  mysql_query($query);
              }
          }
       }
       $query = "SELECT question FROM ".$TABLE_PREFIX."questions WHERE id='$id'";
       $result = mysql_query($query);
       list($question) = mysql_fetch_row($result);
       echo "<form name=\"voting\" method=\"post\" action=\"$DOC?id=$id&action=vote\">";
       echo "<table width=\"$VOTE_TABLE_WIDTH\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
       echo "<tr><td colspan=\"2\" class=\"poll_smalltext\"><b>$question</b></td></tr>\n";
       echo "<tr><td colspan=\"2\" class=\"poll_smalltext\">&nbsp;</td></tr>\n";
       $query = "SELECT a_id,answer FROM ".$TABLE_PREFIX."options WHERE q_id='$id' ORDER BY a_id";
       $result = mysql_query($query);
       while( list($i,$answer) = mysql_fetch_row($result) ) 
       {
          echo "<tr><td width=\"10\">&nbsp;</td>";
          echo "<td class=\"poll_smalltext\"><input class=\"radio\" type=\"radio\" name=\"a_id\" value=\"$i\"> $answer</td></tr>\n";
       }  
       echo "<tr><td colspan=\"2\">&nbsp;</td></tr>\n";
       echo "<tr><td width=\"10\">&nbsp;</td>";
       echo "<td><input class=\"pollbtn\" name=\"submit\" type=\"submit\" id=\"submit\" value=\"Abstimmen\"></td></tr>\n";
       echo "<tr><td colspan=\"2\">&nbsp;</td></tr>\n";
       echo "<tr><td colspan=\"2\"><a class=\"poll\" href=\"poll_view.php?id=$id\">Ergebnisse ansehen</a></td></tr>\n";
       echo "</table>\n";
       echo "</form>\n"; 
   }
?>

Die hauptseite heisst index.php und die view-seite heisst poll_view.php und wenn möglich soll nach dem vote das ergebnis in der selben tabelle angezeigt werden auf der selben seite auf der ich auch gevotet habe! Also wenn ich jetzt auf der index.php?content=home bin möchte ich auch auf der sein und das ergebnis haben, viele seiten funktionieren ja genauso aber ich weiß nciht wie ich das hinbekomme!
 
oh floh, hatte dienen eintrag gar nicht gesehen! Aber genau so meine ich das! Variante 1 ist genau meine Vorstellung! haste mal Zeit so eine IF Alternative zu posten ich habe nämlich null plan wie ich das hinkriegen soll!
 
eine möglichkeit ist:
du baust deine seite so auf dass die hauptseite index.php ist und includest in die seite deinen poll.

die poll seite muss so aufgebaut sein
PHP:
if($_POST['vote'] == "1")
{ 
   //Code für die Ergebnisanzeige
}

if($_POST['vote'] !== "1")
{
   //Code für die Optionen
   echo "<input type=\"hidden\" name=\"vote\" value=\"1\">"; 
   //das hidden Feld ist dazu da, dass die Variable vote mit dem Wert 1 übergeben wird und somit beim neuladen der seite der Ergebiscode angezeigt wird 
}

zu der variante mit cookie:
ist eigentlich die gleiche Abfrage, nur dass du zusätzlich noch ein Cookie abfragen musst und hald bei dem Optionen senden ein Cookie setzen musst.
 
die Version mit den Cookies bringt dir besonders viel, wenn der/die User
in ihrem Browser Cookies deaktiviert haben...
 
aber der cookie ist die bessere lösung für mich weil sobald ich ne seite wechsle springt der wieder zurück! Danke erstmal an Floh, das hat soweit erstmal geklappt das wnen ich gevotet habe der das ergebnis anzeigt, aber ich will natürlich das ergebnis die ganze zeit angezeigt haben solange wie jemand auf meiner seite ist! und was mich dabei noch brennend interessiert, wenn ich nen cookie setze bei einem vote wird der dann bei einem neuen pollthema automatisch gelöscht oder steht der dann immernoch auf true?
 
der steht dann immernoch auf true.

Es sei denn der User hat alle Cookies geloscht und somit die moeglichkeit beliebig oft zu voten.

du kannst ja in das Cookie deine Poll ID schreiben und dann auf true setzen,
damit waerst du das Problem los.
 
Also mein Code sieht mittlerweile so aus:
PHP:
<?php
if($_COOKIE['poll']=="true")
{ 
   include "common.inc";
   echo "<link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\">";

   if( !isset($id) )
      $id = $HTTP_GET_VARS['id'];

   if( isset($id) )
   {
       dbconnect();   
       $query = "SELECT question FROM ".$TABLE_PREFIX."questions WHERE id='$id'";
       $result = mysql_query($query);
       list($question) = mysql_fetch_row($result);
       echo "<table width=\"$VOTE_TABLE_WIDTH\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
       echo "<tr><td colspan=\"2\" class=\"poll_smalltext\"><b>$question</b></td></tr>\n";
       echo "<tr><td colspan=\"2\" class=\"poll_smalltext\">&nbsp;</td></tr>\n";
       $query = "SELECT COUNT(*) FROM ".$TABLE_PREFIX."votes WHERE q_id='$id'";
       $result = mysql_query($query);
       list($anz) = mysql_fetch_row($result);
       echo "<tr><td colspan=\"2\" class=\"poll_smalltext\">Stimmabgaben: $anz</td></tr>\n";
       echo "<tr><td colspan=\"2\" class=\"poll_smalltext\">&nbsp;</td></tr>\n";
       $query = "SELECT a_id,answer FROM ".$TABLE_PREFIX."options WHERE q_id='$id' ORDER BY a_id";
       $result = mysql_query($query);
       while( list($a_id,$answer) = mysql_fetch_row($result) )
       {
          $q = "SELECT COUNT(*) FROM ".$TABLE_PREFIX."votes WHERE q_id='$id' AND a_id='$a_id'";
          $r = mysql_query($q);  
          list($count) = mysql_fetch_row($r);
          if( $anz>0 ) $prozent = ($count/$anz)*100;
          else $prozent = 0; 
          echo "<tr><td class=\"poll_smalltext\" valign=\"top\">$answer</td>";
          echo "<td class=\"poll_smalltext\" align=\"right\" valign=\"top\">".round($prozent,2)."%</td></tr>\n";
       }
       echo "<tr><td colspan=\"2\" class=\"poll_smalltext\">&nbsp;</td></tr>\n";
       echo "<tr><td colspan=\"2\"><a class=\"poll\" href=\"poll_vote.php?id=$id\">Zur&uuml;ck</a></td></tr>\n";
       echo "</table>\n";
       echo "</form>\n"; 
   }
}

else
{
include "common.inc";
   echo "<link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\">";
   $DOC = "poll_vote.php";

   if( !isset($id) )
      $id = $HTTP_GET_VARS['id']; 
   if( isset($id) ) 
   {
       dbconnect();   
       if( $HTTP_GET_VARS['action']=="vote" )
       {
          if( $HTTP_POST_VARS['a_id']!=0 )
          {
              $host = gethostbyaddr($HTTP_SERVER_VARS["REMOTE_ADDR"]);
              $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
              $time = make_MySQL_Time( (time()-$SPAM_DELAY) );
              $query = "SELECT COUNT(*) FROM ".$TABLE_PREFIX."votes ";
              $query .= "WHERE q_id='$id' AND host='$host' AND date>'$time'";
              $result = mysql_query($query);
              $anz=0;
              list($anz) = mysql_fetch_row($result);
              if( $anz==0 )
              {
                  $query =  "INSERT INTO ".$TABLE_PREFIX."votes (q_id,a_id,host,ip) VALUES ('$id','".
                            $HTTP_POST_VARS['a_id'] ."','$host','$ip')";
                  mysql_query($query);
              }
          }
       }
       $query = "SELECT question FROM ".$TABLE_PREFIX."questions WHERE id='$id'";
       $result = mysql_query($query);
       list($question) = mysql_fetch_row($result);
       echo "<form name=\"voting\" method=\"post\" action=\"$HTTP_SERVER_VARS[PHP_SELF]?id=$id&action=vote\">";
       echo "<table width=\"$VOTE_TABLE_WIDTH\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
       echo "<tr><td colspan=\"2\" class=\"poll_smalltext\"><b>$question</b></td></tr>\n";
       echo "<tr><td colspan=\"2\" class=\"poll_smalltext\">&nbsp;</td></tr>\n";
       $query = "SELECT a_id,answer FROM ".$TABLE_PREFIX."options WHERE q_id='$id' ORDER BY a_id";
       $result = mysql_query($query);
       while( list($i,$answer) = mysql_fetch_row($result) ) 
       {
          echo "<tr><td width=\"10\">&nbsp;</td>";
          echo "<td class=\"poll_smalltext\"><input class=\"radio\" type=\"radio\" name=\"a_id\" value=\"$i\"> $answer</td></tr>\n";
       }  
       echo "<tr><td colspan=\"2\">&nbsp;</td></tr>\n";
       echo "<tr><td width=\"10\">&nbsp;</td>";
       echo "<td><input class=\"pollbtn\" name=\"submit\" type=\"submit\" id=\"submit\" value=\"Abstimmen\"></td></tr>\n";
       echo "<tr><td colspan=\"2\">&nbsp;</td></tr>\n";
       echo "<tr><td colspan=\"2\"><a class=\"poll\" href=\"poll_view.php?id=$id\">Ergebnisse ansehen</a></td></tr>\n";
       echo "</table>\n";
       echo "</form>\n"; 
   } 
}
?>

wo genau muss ich den setcookie befehl setzen damit er keinen fehler ausgibt, achja und wie setze ich in den setcokkie befehl bei diesem beispiel die pollid? und die abfrage dafür?

Mensch ich komme immer weiter aber mein Kopf platzt gleich!
 
Zurück