10. april 2007 - 14:20
Der er
15 kommentarer og 1 løsning
Checkbox - Udtræk bestemte data via checkbox som er gemt i MySQL.
Hej, Kan I hjælpe mig? Jeg har lavet en dvd database, og har bl.a. en side hvor jeg kan vise alle filmene, så kunne jeg godt tænke mig at lave en lille checkbox ud for hver film så jeg f.eks. kunne vælge de film ud som jeg gerne ville se på en anden side, kan det godt lade sig gøre? Jeg har prøvet at surfe rundt på nettet efter det, men synes ikke rigtigt at jeg kan finde noget der passer til MySQL. Venlig hilsen Brian
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
10. april 2007 - 15:10
#1
Du kunne f.eks. lave: $query = mysql_query("SELECT id,title FROM dvd_samling ORDER BY title LIMIT 10"); if(mysql_num_rows($query)>0) { echo '<form action="next_page.php" method="post">'; while($row = mysql_fetch_assoc($query)) { echo $row['title'] . '<input type="checkbox" value="'.$row['id'].'"><br />'; } echo '<input type="submit" name="test" value="Test checkboxes">'; echo '</form>'; } else { echo 'Ingen DVD-titler fundet'; } Og så prøv at lav siden: next_page.php og skriv: <?php echo '<pre>'; print_r($_POST); echo '</pre>'; ?>
10. april 2007 - 15:36
#2
Du skal nok lige ha' et name med på checkbox ..... :O) $query = mysql_query("SELECT id,title FROM dvd_samling ORDER BY title LIMIT 10"); if(mysql_num_rows($query)>0) { echo '<form action="next_page.php" method="post">'; while($row = mysql_fetch_assoc($query)) { echo '<input type="checkbox" name="visfilm[]" value="'.$row['id'].'"> '. $row['title'] .'<br />'; } echo '<input type="submit" name="test" value="Test checkboxes">'; echo '</form>'; } else { echo 'Ingen DVD-titler fundet'; }
10. april 2007 - 15:40
#3
Ja selvfølgelig, mig der sov. :o)
Hej og mange tak for hjælpen. Kan jeg godt få mit "output" til at se anderledes ud? Når jeg køre det nu, ser det sådan her ud: Array ( [visfilm] => Array ( [0] => 1042 [1] => 1041 [2] => 1040 ) [test] => Reserver Film ) Jeg kunne godt tænke mig at der stod f.eks. 1. King Kong 2. The Day After Tomorrow osv. Kan det godt lade sig gøre?
ups, det skulle have stået: 1042. King Kong 1041. The Day After Tomorrow 1040. Twister osv.
Så skal du rette koden på next_page.php til: <?php if(isset($_POST['visfilm'])) { $query = mysql_query("SELECT id,title FROM dvd_samling WHERE id IN ('".implode(',',$_POST['visfilm'])."')"); if(mysql_num_rows($query)>0) { while($row = mysql_fetch_assoc($query)) { echo $row['id'] . '. ' . $row['title'] . '<br />'; } } } ?>
Hej jakobdo, tak for hjælpen :o) Nu får den både min film id og titel med over, men det er desværre kun får én film, selvom jeg markere flere på den foregående side, ved du hvad det kan være?
Prøv at ret koden til: <?php if(isset($_POST['visfilm'])) { $sql = "SELECT id,title FROM dvd_samling WHERE id IN ('".implode(',',$_POST['visfilm'])."')"; echo 'DEBUG : ' . $sql . '<br />'; $query = mysql_query($sql) or die(mysql_error()); if(mysql_num_rows($query)>0) { while($row = mysql_fetch_assoc($query)) { echo $row['id'] . '. ' . $row['title'] . '<br />'; } } } ?> og smid info fra: debug herind. Måske der er en fejl i min opbygning af sql'en. :o(
Hej, Jeg får dette resultat af min SQL: DEBUG : SELECT dvd_film_ID, Original_Titel, Dansk_Titel, Mini_DVD_Cover FROM alle_dvd_film WHERE dvd_film_ID IN ('1065,1062') 1065. The Last King Of Scotland Det er underligt at den kun tager den første dvd_film_id
21. juli 2007 - 09:28
#10
Klart, jeg har lavet en fejl. Ret lige: implode(',',$_POST['visfilm']) til: implode("','",$_POST['visfilm'])
21. juli 2007 - 12:51
#11
Kanont :o) Nu var den der, nu får jeg vist begge film.. Mange tak for hjælpen. Vil du lægge et svar, så vil jeg fluks give dig point
21. juli 2007 - 13:57
#12
Hej igen, jeg kom lige til at tænke på, hvis nu jeg skal maile de to titler, kan jeg så lægge indholdet af $_POST['visfilm'] over i en send mail funktion som denne her: <? $dvd_film_ID =$_POST["dvd_film_ID"]; $Original_Titel =$_POST["Original_Titel"]; $Dansk_Titel =$_POST["Dansk_Titel"]; foreach($_POST['visfilm'] as $Email) { //**************** Her starter mail-funtionen **************** $mails = "$Email"; $mailSubject = "$emne"; $mailBody = "<font size=\"2\" color=\"#330099\" face=\"Verdana\"><p>".$beskrivelse."</p></font>"; $mail_headers = "From: Movie Universe <No_Reply>" . "\n" . 'MIME-Version: 1.0' . "\n" . 'Message-ID: <' . md5(uniqid(time())) . '@brianmilan.dk>' . "\n" . 'Content-Type: text/html; charset="iso-8859-1"' . "\n" . 'Content-Transfer-Encoding: 8bit' . "\n" . 'Importance: Normal' . "\n"; mail($Email, $mailSubject, $mailBody, $mail_headers); } ?>
22. juli 2007 - 13:18
#13
Du får først et svar.
22. juli 2007 - 13:20
#14
Og hvis der så er tale om der skal sendes info via email, skal du arbejde med denne kode: <?php if(isset($_POST['visfilm'])) { $sql = "SELECT id,title FROM dvd_samling WHERE id IN ('".implode(',',$_POST['visfilm'])."')"; echo 'DEBUG : ' . $sql . '<br />'; $query = mysql_query($sql) or die(mysql_error()); if(mysql_num_rows($query)>0) { while($row = mysql_fetch_assoc($query)) { echo $row['id'] . '. ' . $row['title'] . '<br />'; } } } ?> Og der skal så rettes i linien: echo $row['id'] . '. ' . $row['title'] . '<br />'; til noget i stil med: $mailBody .= $row['id'] . '. ' . $row['title'] . '<br />'; Og så ellers meget at det kode du selv er inde over ja.
22. juli 2007 - 13:28
#15
Alletiders, det vil jeg prøve :o) og endnu engang tak for hjælpen.
22. juli 2007 - 13:42
#16
Jeg takker for point.
Vi tilbyder markedets bedste kurser inden for webudvikling