mutible selectbox naar database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen Spaans

Jeroen Spaans

10/08/2009 15:30:00
Quote Anchor link
Beste,

Hoe kan ik een multible selectbox wegschrijven in mysql??
 
PHP hulp

PHP hulp

21/11/2024 19:45:59
 
GaMer B

GaMer B

10/08/2009 15:39:00
Quote Anchor link
Haal je $_POST array maar eens na het verzenden van het formulier door de functie print_r, dan zie je wel hoe een multiple selectbox binnen komt voor PHP. Het is dan namelijk een array.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
print_r($_POST);[/code]
 
Jeroen Spaans

Jeroen Spaans

10/08/2009 15:52:00
Quote Anchor link
ik krijg inderdaad
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Array ( [0] => Chinees (Kantonees) [1] => Frans [2] => Portugees [3] => Russisch )


Hoe krijg ik dit gescheiden met een , in 1 tabel veld?
 
GaMer B

GaMer B

10/08/2009 16:06:00
Quote Anchor link
Ik kan je niet aanraden om meerdere waardes in één veld in je tabel te proppen. Dan heb je een verkeerd database-model.

Maargoed, als jouw multiple selectbox de naam 'taal' heeft:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
echo implode(', ', $_POST['taal']);[/code]

Zou moeten geven: Chinees (Kantonees), Frans, Portugees, Russisch.
 
Jeroen Spaans

Jeroen Spaans

10/08/2009 16:10:00
Quote Anchor link
Dank!
 
Jeroen Spaans

Jeroen Spaans

10/08/2009 17:10:00
Quote Anchor link
k heb nu dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
$taal
= implode(', ', $_POST['talen']);
$functiegroep = implode(', ', $_POST['functiegroep']);
?>


alleen krijg ik de volgende melding:
Warning: implode() [function.implode]: Invalid arguments passed in C:\Inetpub\vacature-site\online_cv.php on line 39

Warning: implode() [function.implode]: Invalid arguments passed in C:\Inetpub\vacature-site\online_cv.php on line 40
Field 'opmerkingen-admin' doesn't have a default value

Wa doe ik fout?
 
GaMer B

GaMer B

10/08/2009 17:16:00
Quote Anchor link
Zorg er wel voor dat $_POST['talen'] en $_POST['functiegroep'] gedefinieerd zijn op dat moment. Pas wanneer je een formulier verzend worden ze pas gedefinieerd.
 
Jeroen Spaans

Jeroen Spaans

10/08/2009 17:19:00
Quote Anchor link
hoe bedoel je dat?
 
GaMer B

GaMer B

10/08/2009 17:30:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// Nu bstaat $_POST['talen'] nog niet!

if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    // NU bestaat $_POST['talen'] pas (formulier is immers verzonden)
}
else
{
    // Nu bestaat $_POST['talen'] ook niet
}
?>
 
Jeroen Spaans

Jeroen Spaans

10/08/2009 17:32:00
Quote Anchor link
jaa dit heb ik al,, en dan krijg ik die melding
 
Jan Koehoorn

Jan Koehoorn

10/08/2009 19:08:00
Quote Anchor link
Een select multiple wordt pas verzonden als er minstens 1 option is geselecteerd. Je zult dus moeten checken of $_POST['talen'] wel bestaat met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    if (isset ($_POST['talen'])) {
        // okee
    }
?>
 
Jeroen Spaans

Jeroen Spaans

10/08/2009 19:10:00
Quote Anchor link
er zijn in beide gavallen 3 geselecteerd.
 
Jan Koehoorn

Jan Koehoorn

10/08/2009 19:19:00
Quote Anchor link
Heb je wel blokhaakjes gebruikt bij het name attribuut van je multiple select?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<select multiple="multiple" name="myselect[]">

Deze code getest en werkt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
    <form method="post" action="phphulp.php">
        <select multiple="multiple" name="myselect[]">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
        <input type="submit" value="verzenden" />
    </form>
    <?php
        if (isset ($_POST['myselect'])) {
            echo '<pre>' . print_r ($_POST['myselect'], true) . '</pre>';
        }

    ?>

</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Jeroen Spaans

Jeroen Spaans

10/08/2009 19:27:00
Quote Anchor link
Dank ik was de haakjes vergeten..
 
Jeroen Spaans

Jeroen Spaans

10/08/2009 20:19:00
Quote Anchor link
Nu wil ik ze uitlezen uit de database, en de gene die waren gekozen ook weer automatisch selecteren, voor bewerken, nu weet ik explode maar hoe verder?

ik heb nu dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
          <?
        $taal
= explode(", ", $r['talen']);
         while($listt = mysql_fetch_assoc($queryt)){
         $selected = "";
         if($taal == $listt['taal']){
             $selected = 'selected';
         }

            echo "<option value='".$listt['taal']."' $selected>".$listt['taal']."</option>\n";
                                }

        ?>


maar dit werkt niet...
 
GaMer B

GaMer B

10/08/2009 20:30:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$talen
= explode(', ', $r['talen']);
while($listt = mysql_fetch_assoc($queryt))
{

    $option  = '<option value="' . $listt['taal'] . '"';
    $option .= (in_array($listt['taal'], $talen)) : ' selected>' ? '>';
    $option .= $listt['taal'] . '</option>' . PHP_EOL;
    echo $option;
}[
/code]

EDIT: echo regel toegevoegd
Gewijzigd op 01/01/1970 01:00:00 door GaMer B
 
Jeroen Spaans

Jeroen Spaans

10/08/2009 20:39:00
Quote Anchor link
GaMer13 schreef op 10.08.2009 20:30:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$talen
= explode(', ', $r['talen']);
while($listt = mysql_fetch_assoc($queryt))
{

    $option  = '<option value="' . $listt['taal'] . '"';
    $option .= (in_array($listt['taal'], $talen)) : ' selected>' ? '>';
    $option .= $listt['taal'] . '</option>' . PHP_EOL;
    echo $option;
}
[
/code]

EDIT: echo regel toegevoegd[/quote]

Dank!,, hij gaf eerst parse error maar dat kwam dus door die echo,, ik had het ondertussen opgelost door de volgende code:
[
code]
[
code]<?
         $functiegroep
= explode(", ", $r['functiegroep']);
         while($listf = mysql_fetch_assoc($queryf)){
         $selected = "";
         if(in_array($listf['functiegroep'], $functiegroep)){
             $selected = 'selected';
         }

            echo "<option value='".$listf['functiegroep']."' $selected>".$listf['functiegroep']."</option>\n";
                                }

        ?>
Gewijzigd op 01/01/1970 01:00:00 door Jeroen Spaans
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.