Avatar billede fritter25 Nybegynder
11. august 2004 - 10:03 Der er 8 kommentarer og
1 løsning

Fra Checkbox til Mysql DB

Hejsa.

Jeg kan ikke rigtigt få min php side til at smide værdierne fra checkboksen ind i en DB.............og dog. Jeg har 4 checkbox felter. Hvis jeg bare vælger en af dem, bliver de lagt ind i db'en, men hvis jeg nu ønsker at alle 2, 3 eller alle 4 værdier skal skrives ind i DB'en, så skriver den stadig kun en enkelt.

Her et uddrag fra min kode.

if (isset($_POST['Ok'])); {

 
    $db = mysql_connect("127.0.0.1", "root", "");
    mysql_select_db("mathiesen",$db);
   
   

$datot = $_POST['datot'];
$tiden = $_POST['tiden'];
$afsluttet = $_POST['afsluttet'];
$arbejdssdl = $_POST['arbejdssdl'];
$rekvi = $_POST['rekvi'];
$lokat = $_POST['lokat'];
$probl = $_POST['probl'];
$radio = $_POST['radio'];
$klaret = $_POST['klaret'];
   
    mysql_query("INSERT INTO logfil(datot, tiden, afsluttet, arbejdssdl, rekvi, lokat, probl, radio, klaret) VALUES ('$datot','$tiden','$afsluttet','$arbejdssdl','$rekvi','$lokat','$probl','$radio','$klaret')")or die(mysql_error());

   
    echo "<center>";
    echo "<BR>";


}   
?>
<center>


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

----------------------------------------------------------------

<td align="center">
                        <p align="left"><font face="Tahoma">Udført af </font></td>
                        <td width="284" align="center">
                        <table border="0" width="100%" id="table10" style="border-collapse: collapse">
                            <tr>
                                <td width="91"><font face="Tahoma">ChrR</font></td>
                                <td width="47"><font face="Tahoma">Erik</font></td>
                                <td><font face="Tahoma">Chr</font></td>
                                <td width="50"><font face="Tahoma">Peter</font></td>
                            </tr>
                        </table>
                        </td>
                        <td align="center">&nbsp;</td>
                    </tr>
                    <tr>
                        <td align="center">&nbsp;</td>
                        <td width="284" align="center">
                        <table border="0" width="100%" id="table9" style="border-collapse: collapse">
                            <tr>
                                <td align="center"><font face="Tahoma">
                                <input type="checkbox" name="klaret" value="ChristianR"></font></td>
                                <td align="center"><font face="Tahoma">
                                <input type="checkbox" name="klaret" value="Erik"></font></td>
                                <td align="center"><font face="Tahoma">
                                <input type="checkbox" name="klaret" value="Christian"></font></td>
                                <td align="center"><font face="Tahoma">
                                <input type="checkbox" name="klaret" value="Peter"></font></td>
                            </tr>
                        </table>
                        </td>
Avatar billede detox Nybegynder
11. august 2004 - 12:17 #1
Der er en hel del fejl i den kode du viser. Et eks.:

if (isset($_POST['Ok'])); {

der skal ikke være semikolon her.
Ønsker du at indsætte flere værdier i et felt og i så fald adskilt af hvad (mellemrum, komma, e.l.) eller er felttypen fx et SET?
Avatar billede detox Nybegynder
11. august 2004 - 14:31 #2
Se dette eksempel:

<?
if (isset($_POST['submit']) && $_POST['submit'] =='Send') {
    $klaret = $_POST['klaret'];
    print_r($klaret);
    echo "<br />";
    echo "Streng = " . implode(',', $klaret);
}   
?>
<form method="post" action="<? echo $_SERVER['PHP_SELF'];?>">
<div>
<span>CristianR</span> <input type="checkbox" name="klaret[]" value="CristianR">
<span>Erik</span> <input type="checkbox" name="klaret[]" value="Erik">
<span>Christian</span><input type="checkbox" name="klaret[]" value="Christian">
<span>Peter</span><input type="checkbox" name="klaret[]" value="Peter">
</div>
<div><input type="submit" name="submit" value="Send" /></div>
</form>
Avatar billede fritter25 Nybegynder
12. august 2004 - 12:54 #3
Da jeg jo i forvejen har det sat op på denne måde:

$datot = $_POST['datot'];
$tiden = $_POST['tiden'];
$afsluttet = $_POST['afsluttet'];
$arbejdssdl = $_POST['arbejdssdl'];
$rekvi = $_POST['rekvi'];
$lokat = $_POST['lokat'];
$probl = $_POST['probl'];
$radio = $_POST['radio'];
$klaret = $_POST['klaret'];


hvordan er det så muligt at flette denne funktion ind?

if (isset($_POST['submit']) && $_POST['submit'] =='Send') {
    $klaret = $_POST['klaret'];
    print_r($klaret);
    echo "<br />";
    echo "Streng = " . implode(',', $klaret);
Avatar billede detox Nybegynder
12. august 2004 - 13:22 #4
Det vigtige er at du bruger et array i formen (altså med: name="klaret[]).
Spørgsmålet er så stadig hvilken felttype du bruger i databasen.
Skal det bare stå som fx: 'Erik,Christian,Peter'?
I så fald kan du bytte:

$klaret = $_POST['klaret'];

ud med:

$klaret = implode(',', $_POST['klaret']);
Avatar billede fritter25 Nybegynder
13. august 2004 - 11:55 #5
Hmmm. Jeg brugte denne funktion "$klaret = implode(',', $_POST['klaret']);"

Jeg fik en warning, og der blev ikke skrevet noget ned i DB'en!

Warningen lød "Warning: Bad arguments to implode() in c:\programmer\easyphp\www\skriv_log.php on line 30
Avatar billede detox Nybegynder
13. august 2004 - 13:23 #6
Så har du nok ikke rettet din form som jeg har beskrevet?
Avatar billede fritter25 Nybegynder
13. august 2004 - 13:46 #7
Min felttype i DB'en er SET.
Avatar billede detox Nybegynder
17. august 2004 - 01:15 #8
Hov den her havde jeg overset.
Med felttypen SET er det jo oplagt at ligge oplysningerne ind med binære værdier.
Fx:

<?
if (isset($_POST['submit']) && $_POST['submit'] =='Send') {
    $klaret = array_sum($_POST['klaret']);
    // Så er $klaret den binære værdi af de valgte navne, lige til at smide i databasen.
}   
?>
<form method="post" action="<? echo $_SERVER['PHP_SELF'];?>">
<div>
<span>CristianR</span> <input type="checkbox" name="klaret[]" value="1">
<span>Erik</span> <input type="checkbox" name="klaret[]" value="2">
<span>Christian</span><input type="checkbox" name="klaret[]" value="4">
<span>Peter</span><input type="checkbox" name="klaret[]" value="8">
</div>
<div><input type="submit" name="submit" value="Send" /></div>
</form>
Avatar billede fritter25 Nybegynder
25. oktober 2005 - 16:36 #9
Jeg ved det er længe siden, men jeg sidder lige og rydder op. Smid lige et svar, så får du point!
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