Avatar billede cmau Nybegynder
29. maj 2005 - 16:45 Der er 17 kommentarer og
1 løsning

Del op ved (komma)

Hejsa

Jeg har et felt i min dababase, hvor der kan stå:
Sej, Cool, Doven, Taber

Når det så bliver udskrevet i min select multiple, så skal alle dem, som er nævnt ove for blive selected. Ligesom den gør i nedenstående, bare at i det jeg gerne vil have kan de vælge flere og der er komma i mellem i databasen:

Alkohol:<br>
<select name="smoking" size="1">
<?
foreach(array("Ikke angivet", "Aldrig", "Sjældent", "Til fest", "Alkoholiker") as $place){
echo "<option".($row['alcohol'] == $place ? " selected" : "")." value=\"$place\">$place</option>\n";
}
?></select><br><br>
Avatar billede jakobdo Ekspert
29. maj 2005 - 16:54 #1
Prøv at kig på funktionen: http://dk2.php.net/explode
Avatar billede cmau Nybegynder
29. maj 2005 - 17:18 #2
Ok har kigget lidt og forstår godt det, men det skal jo være sådan at alt under personlighed, som jeg er ved at lave står i alfabetisk orden. Jeg laver så sådan en her:

<select name="personality" size="1">
<?
foreach(array("a", "b", "v", "d", "e") as $personality){
echo "<option".($row['personality'] == $personality ? " selected" : "")." value=\"$personality\">$personality</option>\n";
}
?></select><br><br>

Det skal være noget i den stil, bare at $row['personality'] bliver delt op ved komma og de rigtige felter bliver selected.
Avatar billede jakobdo Ekspert
29. maj 2005 - 17:22 #3
Hvad er det du mangler nu?
Du har jo alle stumper du skal bruge?
Avatar billede cmau Nybegynder
29. maj 2005 - 17:37 #4
Vil dette virke?

<select name="personality" size="1">
<?
$personality = explode(", ", $row['personality']);
foreach(array("a", "b", "v", "d", "e") as $place){
echo "<option".($personality == $place ? " selected" : "")." value=\"$place\">$place</option>\n";
}
?></select><br><br>
Avatar billede jakobdo Ekspert
29. maj 2005 - 17:40 #5
Prøv:
<select name="personality" size="1">
<?
$personArr = explode(", ", $row['personality']);
foreach($personArr as $stuff){
echo "<option".($personality == $stuff ? " selected" : "")." value=\"$place\">$place</option>\n";
}
?></select><br><br>

Når du dog har size=1, så mener jeg ikke du kan få multiple select.
Avatar billede cmau Nybegynder
29. maj 2005 - 17:46 #6
Der findes jo flere end dem der bliver udskrevet.

Fx vi siger der findes

Sej, Cool, Nice

ogås i  $row['personality'] bliver Sej, Nice udskrevet, så skal den gøre så de 2 er selected i min multiple select.
Avatar billede jakobdo Ekspert
29. maj 2005 - 17:51 #7
Du skal ihf ændre:
<select name="personality" size="1">
til
<select multiple name="personality" size="3">
Men resten ser ok ud!
Avatar billede cmau Nybegynder
29. maj 2005 - 17:59 #8
Jaja ved godt at size skal være over 1 og at der skal tilføjes multiple, men hvor skal jeg skrive alle valg mulighederne?
Avatar billede jakobdo Ekspert
29. maj 2005 - 18:02 #9
Det gør du jo med:
echo "<option".($personality == $stuff ? " selected" : "")." value=\"$stuff\">$stuff</option>\n";
Avatar billede cmau Nybegynder
29. maj 2005 - 18:08 #10
Det er jo lavet sådan, ved alkohol (Det jeg viste først) at den selv ud skrev alle options bare ved denne kode:

Alkohol:<br>
<select name="smoking" size="1">
<?
foreach(array("Ikke angivet", "Aldrig", "Sjældent", "Til fest", "Alkoholiker") as $place){
echo "<option".($row['alcohol'] == $place ? " selected" : "")." value=\"$place\">$place</option>\n";
}
?></select><br><br>

Altså at jeg smed alle muligheder her ind:

foreach(array("Ikke angivet", "Aldrig", "Sjældent", "Til fest", "Alkoholiker") as $place){

Også udskrev den selv alle sammen og smed selected ind, hvis $row['alcohol'] var li med $place
Avatar billede jakobdo Ekspert
29. maj 2005 - 18:28 #11
Jeg forstår ikke din måde at lave det på!
Giver op...
Avatar billede cmau Nybegynder
29. maj 2005 - 18:37 #12
Prøv at se her..

http://kdp.users.whitehat.dk/jakobdo.php

Prøv at vælg en af felterne og tryk på knappen, så bliver du sendt til den samme side igen, men så har den selected den du valgte. Det er sådan jeg gerne vil have den til at gøre bare med noget der bliver udskrevet fra en database. Hvor den først skal explode indholdet, også derefter skal den sætte alle dem som fandtes i databasen til selected. Også skal det være en multiple hvor size er over 1.

<form method="POST" action="jakobdo.php" enctype="multipart/form-data">
Alkohol:<br>
<select name="alcohol" size="1">
<?
foreach(array("Ikke angivet", "Aldrig", "Sjældent", "Til fest", "Alkoholiker") as $place){
echo "<option".($_POST['alcohol'] == $place ? " selected" : "")." value=\"$place\">$place</option>\n";
}
?></select><br><br>
<input type="submit">
</form>
Avatar billede cmau Nybegynder
29. maj 2005 - 19:43 #13
HelP!?
Avatar billede jakobdo Ekspert
30. maj 2005 - 10:50 #14
Prøv denne:

<select name="personality" size="3">
<?
$personArr = explode(", ", $row['personality']);
foreach(array("a", "b", "v", "d", "e") as $personality)
{
    echo "<option".(in_array($personality,$personArr) ? " selected" : "")." value=\"$personality\">$personality</option>\n";
}
?></select><br><br>
Avatar billede cmau Nybegynder
30. maj 2005 - 11:53 #15
Virker ikke helt i databasen står der:
a, v
Og den makere kun v
Avatar billede cmau Nybegynder
30. maj 2005 - 11:58 #16
Hov det virker manglede bare multiple. tak smider du svar?
Avatar billede jakobdo Ekspert
30. maj 2005 - 13:28 #17
Svar
Avatar billede jakobdo Ekspert
30. maj 2005 - 21:05 #18
Tak for 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