Avatar billede dj_friis Nybegynder
17. juni 2003 - 13:29 Der er 10 kommentarer

Checkbox til MySQL

Jeg er løbet ind i et problem vedr. checkboxe. Jeg ønsker at man som bruger skal kunne vælge en eller flere af checkboxene, og disse valg skal så gemmes i en MySQL database. Samtidig har jeg også en del textboxe som skal gemme noget tekst i DB'en.
Alt dette skal foregå med et klik på en knap.

Indtil videre er min kode som følger:


<HTML>
<BODY>
<p align="center"><font size="5" face="Arial Black"><b>Opret DVD FILM</b></font></p>

<body bgcolor="#FFFFCC">
<?

if ($org_titel){
   
    $db = mysql_connect("127.0.0.1", "root", "");
    mysql_select_db("Film",$db);
   
    mysql_query("INSERT INTO dvd(org_titel, dk_titel, billede) VALUES ('$org_titel','$dk_titel','$billede')");
   
    echo "<center>";
    echo "<BR>";
}   
?>



    <FORM METHOD=POST ACTION=<?echo $PHP_SELF;?>>
    <b>Original Titel:</b>
    <INPUT TYPE=TEXT  NAME="org_titel">
   
    <b>Dansk Titel:</b>
    <INPUT TYPE=TEXT  NAME="dk_titel">

        <p><INPUT TYPE=SUBMIT NAME="Ok" VALUE=OK></p>
   
   
   
    </FORM>   

 
</BODY>
</HTML>

Mit spørgsmål er bare, hvor koden til checkboxene skal indsættes, og hvordan skal den se ud? Selve textboxene har jeg ingen problemer med. De gemmer fint i DB'en.
Samtidig vil jeg også gerne høre, hvordan man på samme måde, ligger ting ind i en database, fra et rullepanel.
Avatar billede schaefner Juniormester
17. juni 2003 - 13:32 #1
Hvor er dine checkboxe?
Avatar billede dj_friis Nybegynder
17. juni 2003 - 13:36 #2
De er ikke blevet tilføjet ednu. Jeg vidste jo ikke hvor de skulle indsættes
Avatar billede dj_friis Nybegynder
17. juni 2003 - 13:46 #3
endnu
Avatar billede myplacedk Nybegynder
17. juni 2003 - 14:33 #4
Du kan fx. lave felterne i databasen som int(1), og så gøre noget i denne stil:
$navn = (isset($_POST['navn']))?1:0;
Så sættes $navn bare ind i databasen.

Det smarte ved at bruge int(1) i stedet for fx. enum('Y','N') er, at SQL'en bliver dejlig nem.
Jeg har fx. lige lavet noget i dag, hvor jeg gør sådan her:
...WHERE enabled AND...
"enabled" er af typen int(1), og indeholder 1 for ja og 0 for nej.
Avatar billede dj_friis Nybegynder
17. juni 2003 - 15:22 #5
Øhhh, den er jeg ikke helt med på. Det der skal sendes fra checkboxen, skal enten være noget tekst eller nogle tal. Så er int vel ikke brugbar
Avatar billede myplacedk Nybegynder
17. juni 2003 - 15:37 #6
Dvs. det er ikke ja/nej?
Hvis det er vilkårlig tekst/tal, ligesom tekst-bokse, så bare brug dem som tekst-bokse.
Avatar billede dj_friis Nybegynder
17. juni 2003 - 15:44 #7
Det var også min plan, men mit spørgsmål går mere på, hvordan koden skal se ud, når jeg samtidig har nogle alm. tekstboxe.
Avatar billede myplacedk Nybegynder
17. juni 2003 - 15:53 #8
Der er ingen forskel...

<input type="checkbox" name="foo" value="bar" checked="checked" />
<input type="text" name="foo" value="bar" />

Serveren kan ikke se forskel på de to. Begge dele har navnet "foo", begge har værdien "bar".
Avatar billede dj_friis Nybegynder
17. juni 2003 - 18:52 #9
Hmmm, jeg kan desværre stdig ikke få det til at virke. Måske der er en som kan se hvad der er galt. Samtidig, kan jeg heller ikke få programmet til at ligge andet end "org_titel" ind i db'en. Programmet er som følger:

<HTML>
<BODY>
<p align="center"><font size="5" face="Arial Black"><b>Opret DVD FILM</b></font></p>

<body bgcolor="#FFFFCC">
<?

if ($org_titel){
   
    $db = mysql_connect("127.0.0.1", "root", "");
    mysql_select_db("Film",$db);
   
    mysql_query("INSERT INTO dvd(org_titel, org_undertitel, dk_titel, dk_undertitel, Ins, widescreen) VALUES ('$org_titel','$org_undertitel
    ','$dk_titel','$dk_undertitel','$Ins','$Widescreen')");
   
    echo "<center>";
    echo "<BR>";
}   
?>
<center>
<br><br><br><br>

    <FORM METHOD=POST ACTION=<?echo $PHP_SELF;?>>
   
   
   
     

   
<table border="0" width="100%">
  <tr>
    <td width="50%">
      <p align="right"><b>Original Titel :</b> <input type="text" name="org_titel" size="28"></td>
    <td width="50%"></td>
  </tr>
</table>
<table border="0" width="100%">
  <tr>
    <td width="40%">
      <p align="right"><i>Original Undertitel : </i></td>
    <td width="60%"><input type="text" name="org_undertitel" size="28"></td>
  </tr>
</table>
<table border="0" width="100%">
  <tr>
    <td width="50%">
      <p align="right"><b>Dansk Titel :</b> <input type="text" name="dk_titel" size="28"></td>
    <td width="50%"></td>
  </tr>
</table>
<table border="0" width="100%">
  <tr>
    <td width="40%">
      <p align="right"><i>Dansk Undertitel : </i></td>
    <td width="60%"><input type="text" name="dk_undertitel" size="28"></td>
  </tr>
</table>
<br><br>
<table border="0" width="100%">
  <tr>
    <td width="50%">
      <p align="right"><b>Instruktør :</b> <input type="text" name="Ins" size="28"></td>
    <td width="50%"></td>
  </tr>
</table>
<br>
<table border="0" width="100%">
  <tr>
    <td width="50%">
      <p align="right"><b>Skuespiller :</b> <input type="text" name="T1" size="28"></td>
    <td width="50%"></td>
  </tr>
</table>
<table border="0" width="100%">
  <tr>
    <td width="50%">
      <p align="right"><b>Skuespiller :</b> <input type="text" name="T1" size="28"></td>
    <td width="50%"></td>
  </tr>
</table>
<table border="0" width="100%">
  <tr>
    <td width="50%">
      <p align="right"><b>Skuespiller :</b> <input type="text" name="T1" size="28"></td>
    <td width="50%"></td>
  </tr>
</table>
<table border="0" width="100%">
  <tr>
    <td width="50%">
      <p align="right"><b>Skuespiller :</b> <input type="text" name="T1" size="28"></td>
    <td width="50%"></td>
  </tr>
</table>
<table border="0" width="100%">
  <tr>
    <td width="50%">
      <p align="right"><b>Skuespiller :</b> <input type="text" name="T1" size="28"></td>
    <td width="50%"></td>
  </tr>
</table>
<table border="0" width="100%">
  <tr>
    <td width="50%">
      <p align="right"><b>Oprindelsesland :</b> <input type="text" name="T1" size="28"></td>
    <td width="50%"></td>
  </tr>
</table>

<input type="checkbox" name="Billede" value="Widescreen" checked="checked" />


<p><INPUT TYPE=SUBMIT NAME="Ok" VALUE=OK></p>
</FORM>     
</BODY>
</HTML>
Avatar billede myplacedk Nybegynder
17. juni 2003 - 19:10 #10
Hvis org_titel virker, så kan jeg ikke umiddelbart se hvorfor de næste 4 ikke virker.
Men den sidste kalder du "Billede" i HTML'en, og "Widescreen" i PHP'en...

Prøv at indsætte noget debug-kode.
Fx ret:
mysql_query("INSERT ...");
til:
$sql = "INSERT ...";
echo "<p>SQL: $sql</p>";
mysql_query($sql) or die(mysql_error());
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester