login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Poll

Offline Rob - 06/06/2006 22:08 (laatste wijziging 09/06/2006 13:58)
Avatar van RobHTML interesse Ik heb een poll en het balkje zou een kleur moeten krijgen als je gestemd hebt.
In IE lukt het maar in FF niet. 

http://www.ngame.nl/index.php

  1. <?php
  2. /* database verbinding */
  3. $mysql = mysql_connect("*****", "*******", "*****");
  4. $database = mysql_select_db("*****", $mysql);
  5.  
  6. /* ip van de bezoeker bezoeker */
  7. if(isset($HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'])) {
  8. $ip = $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'];
  9. } else {
  10. $ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
  11. }
  12.  
  13. /* pollid, als er geen id is opgegeven wordt id 0 gebruikt en dan wordt de nieuwste actieve poll weergegeven */
  14. if(isset($HTTP_GET_VARS['pollid']) && is_numeric($HTTP_GET_VARS['pollid'])) {
  15. $pollid = $HTTP_GET_VARS['pollid'];
  16. } else {
  17. $pollid = 0;
  18. }
  19.  
  20. /* class includen */
  21. include("poll.inc.php");
  22.  
  23. /* class starten
  24. params:
  25. 1: kenmerk van de bezoeker, dus bijv. ip of userid. Let op: als de bezoeker heeft gestemd zal dit kenmerk in de database worden gezet zodat de bezoeker niet nog een keer kan stemmen */
  26. $poll = new wmpoll($ip);
  27.  
  28. /* poll weergeven
  29. params:
  30. 1: pollid, 0: nieuwste actieve poll
  31. 2: mag de bezoekers stemmen, 1: ja 0: nee
  32. 3: breedte van de balkjes, in pixels
  33. 4: lijnkleur van de balkjes
  34. 5: vulkleur van de balkjes */
  35. $poll->toon($pollid, 1, 80, "#A9A9A9", "#FF9900");
  36.  
  37. ?>

22 antwoorden

Gesponsorde links
Offline Frisbee - 06/06/2006 22:27
Avatar van Frisbee HTML beginner Ik vermoed dat dat gebeurd doordat er niks in je td tag zit. Je kunt proberen of het wel werkt als er een spatie in staat. Je zou ook in plaats van de td met achtergrond kleur een image kunnen gebruiken en die breedte geven.
Offline Rob - 06/06/2006 22:32
Avatar van Rob HTML interesse Waar bedoel je?
Offline Frisbee - 06/06/2006 22:36 (laatste wijziging 06/06/2006 22:37)
Avatar van Frisbee HTML beginner voor je balkje print je nu dit:
  1. <td width="16" bgcolor="#FF9900"></td>


Omdat die td leeg is laat FireFox hem niet zien. Als je daar een spatie (&nbsp;) in zet waarschijnlijk wel.

Je kunt dat blokje ook vervangen door een image. Dan krijg je zoiets:
  1. <img style="height: 8px; width: 16px" src="pixel.gif" alt="balk" />
Offline Rob - 07/06/2006 17:04 (laatste wijziging 09/06/2006 11:51)
Avatar van Rob HTML interesse Ik include dit bestand hierboven in mijn gewone index.php. En daar zie ik geen <td> tags staan. 

Edit: Hierin schijnt de fout te zitten.

  1. <?php
  2.  
  3. class wmpoll {
  4. function wmpoll($bezoeker) {
  5. $this->bezoeker = $bezoeker;
  6. }
  7.  
  8. function htmlparse($string){
  9. return htmlentities(trim($string), ENT_QUOTES);
  10. }
  11.  
  12. function stem($vote) {
  13. if(is_numeric($vote) && $vote >= 1 && $vote <= 10) {
  14. $id = $this->list['id'];
  15. $gestemd = $this->list['gestemd']."(".$this->bezoeker.",".$vote.")";
  16. $sql = @mysql_query("UPDATE poll SET antwoord".$vote."=antwoord".$vote."+1, gestemd='".$gestemd."' WHERE id='$id'");
  17. if($sql) {
  18. $this->list["antwoord".$vote]++;
  19. }
  20. }
  21. }
  22.  
  23. function archief($aantal=0) {
  24. GLOBAL $HTTP_SERVER_VARS;
  25. if($aantal != 0) {
  26. $limit = " LIMIT ".$aantal;
  27. } else {
  28. $limit = "";
  29. }
  30. $sql = @mysql_query("SELECT id, vraag FROM poll ORDER BY id DESC".$limit);
  31. echo "<select name=\"pollarchief\" onChange=\"window.location=('".$HTTP_SERVER_VARS['PHP_SELF']."?pollid='+this.options[this.selectedIndex].value)\">\n<option value=\"\">Archief</option>/n";
  32. while($list = @mysql_fetch_assoc($sql)) {
  33. echo "<option value=\"".$list['id']."\">".$this->htmlparse($list['vraag'])."</option>\n";
  34. }
  35. echo "</select>\n";
  36. }
  37.  
  38. function toon($id=0, $magstemmen=1, $balkje=200, $kleur1="#A9A9A9", $kleur2="#FF9900") {
  39. GLOBAL $HTTP_POST_VARS, $HTTP_SERVER_VARS;
  40. if($id == 0) {
  41. $sql = @mysql_query("SELECT * FROM poll WHERE actief='1' ORDER BY id DESC LIMIT 1");
  42. } else {
  43. $id = addslashes($id);
  44. $sql = @mysql_query("SELECT * FROM poll WHERE id='$id'");
  45. }
  46.  
  47. // bestaat poll?
  48. $bestaat = @mysql_num_rows($sql);
  49. if($bestaat == 0 && $id == 0) {
  50. echo "Fout: er is momenteel geen actieve poll!\n";
  51. } elseif($bestaat == 0) {
  52. echo "Fout: de opgevraagde poll bestaat niet!\n";
  53. } else {
  54.  
  55. $this->list = @mysql_fetch_assoc($sql);
  56.  
  57. // mag de bezoeker stemmen?
  58. if($magstemmen == 0 || preg_match("/\(".$this->bezoeker.",/", $this->list['gestemd'])) {
  59. $magstemmen = 0;
  60. } else {
  61. $magstemmen = 1;
  62. }
  63.  
  64. // poll type
  65. if($this->list['actief'] == 1) {
  66. $type = "Actief";
  67. } else {
  68. $type = "Archief";
  69. $magstemmen = 0;
  70. }
  71.  
  72. // stem opslaan
  73. if($magstemmen == 1 && isset($HTTP_POST_VARS['pollvote']) && isset($HTTP_POST_VARS['pollid']) && $HTTP_POST_VARS['pollid'] == $this->list['id']) {
  74. $this->stem($HTTP_POST_VARS['pollvote']);
  75. $magstemmen = 0;
  76. }
  77.  
  78. // totaal aantal stemmen
  79. $totaal = 0;
  80. for($x=1; $x<=10; $x++) {
  81. $totaal = $totaal + $this->list["antwoord".$x];
  82. }
  83.  
  84. // poll weergeven
  85. if($magstemmen == 1) {
  86. echo "<form action=\"".$HTTP_SERVER_VARS['REQUEST_URI']."\" method=\"POST\">\n<input type=\"hidden\" name=\"pollid\" value=\"".$this->list['id']."\">\n";
  87. }
  88. echo "<b>".$this->htmlparse($this->list['vraag'])."</b><br>\nStemmen: ".$totaal."<br>\nDatum: ".date("d-m-Y", $this->list['datum'])."<br>\nType: ".$type."<br><br>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
  89.  
  90. for($x=1; $x<=10; $x++) {
  91. if(!empty($this->list["keuze".$x])) {
  92. // resultaten berekenen
  93. if($totaal != 0) {
  94. $procent = round(($this->list["antwoord".$x]/$totaal)*100);
  95. $balk = ($this->list["antwoord".$x]/$totaal)*$balkje;
  96. } else {
  97. $procent = 0;
  98. $balk = 0;
  99. }
  100.  
  101. echo "<tr>";
  102. if($magstemmen == 1) {
  103. echo "<td><input type=\"radio\" name=\"pollvote\" value=\"".$x."\"></td>";
  104. }
  105. echo "<td><b>".$this->htmlparse($this->list["keuze".$x])."</b>&nbsp;&nbsp;&nbsp;</td><td>".$procent." %&nbsp;&nbsp;&nbsp;</td><td>\n<table width=\"".$balkje."\" height=\"10\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border: 1px solid ".$kleur1.";\"><tr><td width=\"".$balk."\" bgcolor=\"".$kleur2."\"></td><td width=\"".($balkje-$balk)."\"></td></tr></table>\n</td></tr>\n";
  106. }
  107. }
  108.  
  109. echo "</table>\n";
  110.  
  111. if($magstemmen == 1) {
  112. echo "<input type=\"submit\" name=\"submit\" value=\"Stem\">\n</form>\n";
  113. }
  114. }
  115. }
  116. }
  117. ?>
Offline marten - 09/06/2006 12:01 (laatste wijziging 09/06/2006 12:02)
Avatar van marten Beheerder Je gebruikt ook oude functies 

HTTP_GET_VARS ----> $_GET[];
HTTP_SERVER_VARS ----> $_SERVER[];

Lees eens een tutorial over super globals. Dan word het je wel duidelijk
Offline Rob - 09/06/2006 12:02
Avatar van Rob HTML interesse En hoe moet ik dat veranderen?
Offline marten - 09/06/2006 12:05
Avatar van marten Beheerder
  1. <?php/* pollid, als er geen id is opgegeven wordt id 0 gebruikt en dan wordt de nieuwste actieve poll weergegeven */
  2. if(isset($HTTP_GET_VARS['pollid']) && is_numeric($HTTP_GET_VARS['pollid'])) {
  3. $pollid = $HTTP_GET_VARS['pollid'];
  4. } else {
  5. $pollid = 0;
  6. }
  7. ?>


Word dus

  1. <?php
  2. /* pollid, als er geen id is opgegeven wordt id 0 gebruikt en dan wordt de nieuwste actieve poll weergegeven */
  3. if(isset($_GET['pollid']) && is_numeric($_GET['pollid'])) {
  4. $pollid = $_GET['pollid'];
  5. } else {
  6. $pollid = 0;
  7. }
  8. ?>


Zo vervang je al die oude functies 
Offline Rob - 09/06/2006 12:41
Avatar van Rob HTML interesse Werkt niet. 
Offline marten - 09/06/2006 12:47
Avatar van marten Beheerder waarom niet? foutmeldingen?
Offline Rob - 09/06/2006 12:50 (laatste wijziging 09/06/2006 12:51)
Avatar van Rob HTML interesse http://www.ngame.nl/index.php

Geen foutmeldingen, maar een leeg balkje hier in Firefox.

Edit: http://poll.ngame.nl/index.php

Zo doet hij het wel. 
Offline Ultimatum - 09/06/2006 13:32
Avatar van Ultimatum PHP expert weet je zeker dat het pad naar de images dan wel goed is?
Offline Rob - 09/06/2006 13:49
Avatar van Rob HTML interesse Ik gebruik geen images.
Offline marten - 09/06/2006 13:53 (laatste wijziging 09/06/2006 13:54)
Avatar van marten Beheerder ik denk dat mozilla de mist in gaat met je html code. Haal de code eens door een validator. Misschien kom je dan achter de fout 

en wijzig je wachtwoorden in **********:cool:
Offline Rob - 09/06/2006 13:59
Avatar van Rob HTML interesse Nee, die ziet niks fout.
Offline marten - 09/06/2006 14:02
Avatar van marten Beheerder wil je de code die je hebt eens op www.plaatscode.be zetten? dan ga ik er even in splitten
Offline Rob - 09/06/2006 14:06
Avatar van Rob HTML interesse http://www.plaatscode.be/650/ poll.inc.php
http://www.plaatscode.be/652/ index.php
Offline marten - 09/06/2006 14:07
Avatar van marten Beheerder nog steeds niet die oude functies eruit? :o
Offline Rob - 09/06/2006 15:49
Avatar van Rob HTML interesse Dat kan ik niet. 
Offline Micron - 09/06/2006 16:31
Avatar van Micron HTML beginner Das die webmastercity poll. Dan heb jij die code voor XHTML Valid boven je pagina staan. Das onwijs raar toen deed ie het ook niet bij mij. Als je die regel voor XHTML Valid weghaalt doet ie het wel in FF.
Offline Rob - 09/06/2006 17:00
Avatar van Rob HTML interesse Ja, het werkt!

Hoe kan dat eigenlijk?
Offline Micron - 09/06/2006 17:39
Avatar van Micron HTML beginner Ik zou het echt niet weten, ikzelf was er ook niet achter. Misschien moet er bij de balk vulling style="background-color: #KLEUR;" worden gedaan. Ik ben er zelf in ieder geval nog niet achter.
Offline Rens - 09/06/2006 18:10
Avatar van Rens Gouden medaille

Crew algemeen
Citaat:
Dat kan ik niet.:$

Dat kan iedereen.
Dat is gewoon $HTTP_SERVER_VARS veranderen in $_SERVER...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.253s