22. maj 2004 - 13:27
Der er
32 kommentarer og 1 løsning
Afstemning (radio knap)
Hej, jeg skal lave noget ala et hot or not system. Jeg kan bare ikke helt finde ud af hvordan jeg laver min "radio" ting. altså hvordan min form skal se ud, så når man klikker på (Det tal der det ud fra) så sender den det.) Altså så man ikke skal klikke på "send".. Men det gør den auto. så hvis i kan hjælp så er i meget velkommen ;)
Annonceindlæg fra itavis
men det er noget i stil med: <input type="radio" onClick="this.form.submit()" name.. value ..>
hmm, bare fordi jeg skal jo også have det til at smide det i database bagefter..
<input type="radio" onClick="this.form.submit()" name="vote" value="1"> <input type="radio" onClick="this.form.submit()" name="vote" value="2"> <input type="radio" onClick="this.form.submit()" name="vote" value="3"> osv... og den variabel du så skal smide i din database er så bare $vote
ok kigger lige på det senere skal lige i IKEA! ;D
talker: det er jo det samme som jeg skrev ? fbb: <form method="post" action="vote.php"> <input type="radio" onClick="this.form.submit()" name="vote" value="1"> <input type="radio" onClick="this.form.submit()" name="vote" value="2"> <input type="radio" onClick="this.form.submit()" name="vote" value="3"> </form> i din vote.php: if( isset($_POST['vote']) ) { $vote = $_POST['vote']; og gem vote i databasen } Ligesom man normalt gør, når man arbejder med forms.
dennismp> ja? Ville bare gøre dit svar lidt mere tydeligt for ham da han ikke forstod det? Du behøver ikke gå amok lille ven jeg prøver ikke at tage noget kredit for dit svar...
Jeg har forsøgt mig lidt, men kan ikke rigtigt få det til at virke, den updater ikke + min header går kun til vis.php når man klikker på et tal. mit kode + dump! <? require_once('db.php'); $res = mysql_query("SELECT * FROM numsegejlgalleri where id ='$id'"); while ($row = mysql_fetch_array($res)) { echo'<img border="0" src="galleri/'.$row[file_name].'"> vote: '.$row[vote].''; if( isset($_POST['vote']) ) { $vote2 = $_POST['vote']; $vote2 = $row[vote] + $vote2; mysql_query("UPDATE numsegejlgalleri set vote = '$vote2' where id = '$id'"); header("Location: vis.php?id=".$_GET[vote].""); } } ?> <form method="post" action="vis.php"> <input type="radio" onClick="this.form.submit()" name="vote" value="1">1 <input type="radio" onClick="this.form.submit()" name="vote" value="2">2 <input type="radio" onClick="this.form.submit()" name="vote" value="3">3 <input type="radio" onClick="this.form.submit()" name="vote" value="4">4 <input type="radio" onClick="this.form.submit()" name="vote" value="5">5 <input type="radio" onClick="this.form.submit()" name="vote" value="6">6 <input type="radio" onClick="this.form.submit()" name="vote" value="7">7 <input type="radio" onClick="this.form.submit()" name="vote" value="8">8 <input type="radio" onClick="this.form.submit()" name="vote" value="9">9 <input type="radio" onClick="this.form.submit()" name="vote" value="10">10 </form> CREATE TABLE `numsegejlgalleri` ( `id` int(11) NOT NULL auto_increment, `time` datetime NOT NULL default '0000-00-00 00:00:00', `file_name` varchar(200) NOT NULL default '', `tekst` longtext NOT NULL, `hits` int(11) NOT NULL default '0', `vote` int(11) default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=2 ;
Prøv evt at ændre dine mysql_query() så du får mysql_query(..) or die(mysql_error());
Ah, nu ved jeg hvad der er galt :-) (tror jeg) Når du submitter via din form, får du jo ikke sent det aktuelle id med. Prøv: <form method="post" action="vis.php"> <input type="hidden" name="id" value="<?=$id?>"> <input type="radio" onClick="this.form.submit()" name="vote" value="1">1 <input type="radio" onClick="this.form.submit()" name="vote" value="2">2 <input type="radio" onClick="this.form.submit()" name="vote" value="3">3 <input type="radio" onClick="this.form.submit()" name="vote" value="4">4 <input type="radio" onClick="this.form.submit()" name="vote" value="5">5 <input type="radio" onClick="this.form.submit()" name="vote" value="6">6 <input type="radio" onClick="this.form.submit()" name="vote" value="7">7 <input type="radio" onClick="this.form.submit()" name="vote" value="8">8 <input type="radio" onClick="this.form.submit()" name="vote" value="9">9 <input type="radio" onClick="this.form.submit()" name="vote" value="10">10 </form>
ok, nu ligger den til og det hele, men den skriver: Warning: Cannot modify header information - headers already sent by (output started at /web/www.frederikbb.dk/www/numsegejl1/vis.php:5) in /web/www.frederikbb.dk/www/numsegejl1/vis.php on line 11
<? require_once('db.php'); if( isset($_POST['vote']) ) { $vote2 = $_POST['vote']; $vote2 = $row[vote] + $vote2; mysql_query("UPDATE numsegejlgalleri set vote = '$vote2' where id = '$id'"); header("Location: vis.php?id=".$_GET[vote].""); } $res = mysql_query("SELECT * FROM numsegejlgalleri where id ='$id'"); while ($row = mysql_fetch_array($res)) { echo'<img border="0" src="galleri/'.$row[file_name].'"> vote: '.$row[vote].''; } ?> <form method="post" action="vis.php"> <input type="hidden" name="id" value="<?=$id?>"> <input type="radio" onClick="this.form.submit()" name="vote" value="1">1 <input type="radio" onClick="this.form.submit()" name="vote" value="2">2 <input type="radio" onClick="this.form.submit()" name="vote" value="3">3 <input type="radio" onClick="this.form.submit()" name="vote" value="4">4 <input type="radio" onClick="this.form.submit()" name="vote" value="5">5 <input type="radio" onClick="this.form.submit()" name="vote" value="6">6 <input type="radio" onClick="this.form.submit()" name="vote" value="7">7 <input type="radio" onClick="this.form.submit()" name="vote" value="8">8 <input type="radio" onClick="this.form.submit()" name="vote" value="9">9 <input type="radio" onClick="this.form.submit()" name="vote" value="10">10 </form>
Jeg har flyttet if() sætningen op over while()'en..
ok, så skal min location, så lige hive get med gør den ikke!!
altså id, kommer ikke med :(
Hvis $id indeholder id'et, så prøv: header("Location: vis.php?id=$id");
hmm, den ligger ikke det nye tal til: $vote2 = $row[vote] + $vote2; Dan den jo ikke kan få fat i row..!
Hvorfor ikke bare: $vote2 = $_POST['vote']; mysql_query("UPDATE numsegejlgalleri set vote = vote + '$vote2' where id = '$id'");
nice så virker det.. Kom til at tænkte på, der skal være sætte cookies på Så man kun kan stemme en gang pr dag. skal jeg lave et nyt spm, eller kan du hjælpe mig her..?
hmm hvor skal jeg sætte mit kode ind, har aldrig arbejdet med cookie før.
En cookie skal du sætte før du laver out almindelig output, ellers får du en fejl. Fx: if( isset($_POST['vote']) ) { setcookie("voted",'enværdi',time()+(3600*24*31)); // Cirka en måned. $vote2 = $_POST['vote']; $vote2 = $row[vote] + $vote2; mysql_query("UPDATE numsegejlgalleri set vote = '$vote2' where id = '$id'"); header("Location: vis.php?id=".$_GET[vote].""); } Så kan du bare skrive: if( isset($_COOKIE['voted']) ) { // brugeren har stemt.. } Hvordan har du tænkt på at det skal virke mht cookies?
ok, har tænk på at når man har stemt så skal form ikke være der så skal der bare stå Du har stemt og hvis man ikke har stemt skal den bare vise form
noget i den her stil (utestet) <?php if( isset($_POST['vote']) ) { setcookie("voted",'enværdi',time()+(3600*24*31)); // Cirka en måned. $vote2 = $_POST['vote']; $vote2 = $row[vote] + $vote2; mysql_query("UPDATE numsegejlgalleri set vote = '$vote2' where id = '$id'"); header("Location: vis.php?id=".$_GET[vote].""); } $res = mysql_query("SELECT * FROM numsegejlgalleri where id ='$id'"); while ($row = mysql_fetch_array($res)) { echo'<img border="0" src="galleri/'.$row[file_name].'"> vote: '.$row[vote].''; } if( isset( $_POST['vote'] ) || isset( $_COOKIE['voted']) ) { ?> <form method="post" action="vis.php"> <input type="hidden" name="id" value="<?=$id?>"> <input type="radio" onClick="this.form.submit()" name="vote" value="1">1 <input type="radio" onClick="this.form.submit()" name="vote" value="2">2 <input type="radio" onClick="this.form.submit()" name="vote" value="3">3 <input type="radio" onClick="this.form.submit()" name="vote" value="4">4 <input type="radio" onClick="this.form.submit()" name="vote" value="5">5 <input type="radio" onClick="this.form.submit()" name="vote" value="6">6 <input type="radio" onClick="this.form.submit()" name="vote" value="7">7 <input type="radio" onClick="this.form.submit()" name="vote" value="8">8 <input type="radio" onClick="this.form.submit()" name="vote" value="9">9 <input type="radio" onClick="this.form.submit()" name="vote" value="10">10 </form> <?php } else { ?> Du har allerede stemt. <?php } ?>
<?php require_once('db.php'); if( isset($_POST['vote']) ) { setcookie("voted",'enværdi',time()+(3600*24*31)); // Cirka en måned. $vote2 = $_POST['vote']; mysql_query("UPDATE numsegejlgalleri set vote = vote + '$vote2' where id = '$id'"); header("Location: vis.php?id=".$_GET[vote].""); } $res = mysql_query("SELECT * FROM numsegejlgalleri where id ='$id'"); while ($row = mysql_fetch_array($res)) { echo'<img border="0" src="galleri/'.$row[file_name].'"> vote: '.$row[vote].''; } if( isset( $_POST['vote'] ) || isset( $_COOKIE['voted']) ) { ?> <form method="post" action="vis.php"> <input type="hidden" name="id" value="<?=$id?>"> <input type="radio" onClick="this.form.submit()" name="vote" value="1">1 <input type="radio" onClick="this.form.submit()" name="vote" value="2">2 <input type="radio" onClick="this.form.submit()" name="vote" value="3">3 <input type="radio" onClick="this.form.submit()" name="vote" value="4">4 <input type="radio" onClick="this.form.submit()" name="vote" value="5">5 <input type="radio" onClick="this.form.submit()" name="vote" value="6">6 <input type="radio" onClick="this.form.submit()" name="vote" value="7">7 <input type="radio" onClick="this.form.submit()" name="vote" value="8">8 <input type="radio" onClick="this.form.submit()" name="vote" value="9">9 <input type="radio" onClick="this.form.submit()" name="vote" value="10">10 </form> <?php } else { ?> Du har allerede stemt. <?php } ?> Den skriver du har allder..... før man har stemt.
<?php require_once('db.php'); if( isset($_POST['vote']) ) { setcookie("voted",$id,time()+(3600*24*31)); // Cirka en måned. $vote2 = $_POST['vote']; mysql_query("UPDATE numsegejlgalleri set vote = vote + '$vote2' where id = '$id'"); header("Location: vis.php?id=".$_GET[vote].""); } $res = mysql_query("SELECT * FROM numsegejlgalleri where id ='$id'"); while ($row = mysql_fetch_array($res)) { echo'<img border="0" src="galleri/'.$row[file_name].'"> vote: '.$row[vote].''; } if( isset( $_POST['vote'] ) || ( isset( $_COOKIE['voted']) && $_COOKIE['voted'] == $id ) ) { ?> <form method="post" action="vis.php"> <input type="hidden" name="id" value="<?=$id?>"> <input type="radio" onClick="this.form.submit()" name="vote" value="1">1 <input type="radio" onClick="this.form.submit()" name="vote" value="2">2 <input type="radio" onClick="this.form.submit()" name="vote" value="3">3 <input type="radio" onClick="this.form.submit()" name="vote" value="4">4 <input type="radio" onClick="this.form.submit()" name="vote" value="5">5 <input type="radio" onClick="this.form.submit()" name="vote" value="6">6 <input type="radio" onClick="this.form.submit()" name="vote" value="7">7 <input type="radio" onClick="this.form.submit()" name="vote" value="8">8 <input type="radio" onClick="this.form.submit()" name="vote" value="9">9 <input type="radio" onClick="this.form.submit()" name="vote" value="10">10 </form> <?php } else { ?> Du har allerede stemt. <?php } ?>
Den skriver det endnu.. At man har stemt uden at man har gjort det!
Belastende :-) prøv at sætte ind (bare i bunden af scriptet) print "<pre>"; print_r($_POST); print_r($_COOKIE); print "</pre>";
Jeg er vist træt - det ksal jo self være lige omvendt. if( isset( $_POST['vote'] ) || ( isset( $_COOKIE['voted']) && $_COOKIE['voted'] == $id ) ) { ?> Du har allerede stemt. <?php } else { ?> <form method="post" action="vis.php"> <input type="hidden" name="id" value="<?=$id?>"> <input type="radio" onClick="this.form.submit()" name="vote" value="1">1 <input type="radio" onClick="this.form.submit()" name="vote" value="2">2 <input type="radio" onClick="this.form.submit()" name="vote" value="3">3 <input type="radio" onClick="this.form.submit()" name="vote" value="4">4 <input type="radio" onClick="this.form.submit()" name="vote" value="5">5 <input type="radio" onClick="this.form.submit()" name="vote" value="6">6 <input type="radio" onClick="this.form.submit()" name="vote" value="7">7 <input type="radio" onClick="this.form.submit()" name="vote" value="8">8 <input type="radio" onClick="this.form.submit()" name="vote" value="9">9 <input type="radio" onClick="this.form.submit()" name="vote" value="10">10 </form> <?php } ?>
så var den der.. mange tak ;D
Vi tilbyder markedets bedste kurser inden for webudvikling