Oprettet fre. d. 18. september 2009 kl. 14:55:32

flodhesten
flodhesten (13.705 point. Point ude: 550)

Talrække med multiple select

Hej.

Jeg har en multiple select form, der ser således ud:

<select name="categories[]" multiple="multiple">
<option value="1">Tekst 1</option>
<option value="2">Tekst 2</option>
<option value="3">Tekst 3</option>
<option value="4">Tekst 4</option>
<option value="5">Tekst 5</option>
</select>

Når jeg på min næste side skal hente info via $_POST, regner jeg med at man kan lave løkke ala foreach for at køre mit array igennem.

Men alt efter hvad man vælger, ønsker jeg en syntax der ser sådan ud:

1, 4, 5 eller
2, 3, 4, 5 eller
1, 3, 5 osv...

Der skal altså adskilles med komma, men ikke ved den sidste i rækken.
Den String, som jeg regner med at det bliver, skal så kunne gemmes i en database.

Når jeg trækker talrækken ud fra databasen igen, skal jeg have dem adskilt igen i et array, og hav mulighed for at gennemløbe dem med en løkke.

Jeg håber, at det er til at forstå, og at der er nogle der kan hjælpe.

Skrevet fre. d. 18. september 2009 kl. 15:45:09| #1

cronick
cronick (11.305 point)
Du har ret. Man kan løbe værdierne igennem i en foreach. I dit tilfælde vil jeg umiddelbart foreslå at lægge værdierne ind i en ny array, og så lave det om til en almindelig streng, hvor der er kommaer imellem.

Det kan gøres således:

<?php
$categories = array();
foreach($_POST['categories'] as $value){
$categories[] = $value;
}
$string = implode(", ", $categories); // denne streng er lige til at lægge ind i din database (tabel)
?>


Når du så har fået din streng ud fra databasen igen, kan du lave den om til en array på ny, og så eksempelvis løbe værdierne igennem men en foreach.

Dette kan gøres således:

<?php
$categories = explode(", ", $VALUE); // hvor $VALUE er dit udtræk fra databasen
foreach($categories as $value) {
echo "<p>" . $value . "</p>";
}
?>

Skrevet fre. d. 18. september 2009 kl. 15:45:21| #2

andreas13_fam
andreas13_fam (4.315 point)
Du kan nemt bruge implode() og explode() til det formål, prøv at se på http://www.phpartikler.dk/ (...)

Skrevet fre. d. 18. september 2009 kl. 15:48:30| #3

andreas13_fam
andreas13_fam (4.315 point)
Ingen point til mig tag.
@cronick : husk at du kan bruge [ div ] taget til at lave en boks. Det er lidt mere overskueligt end kursiv.

fx:

<?php
echo '';
?>

Skrevet fre. d. 18. september 2009 kl. 15:59:33| #4

dkfire
dkfire (26.746 point)
Der mangler lige en kommentar til indlægget.
Kommasepareret værdier i en database er aldrig godt, og bør for alt i verden undgås. Dette kan være et udtryk for at din database struktur er forkert.

Skrevet fre. d. 18. september 2009 kl. 16:16:57| #5

cronick
cronick (11.305 point)
I orden andreas13_fam :-)

Jeg er enig med dkfire. Det er altid bedst at have sådanne værdier gemt i en anden tabel, som så peger tilbage på din oprindelige tabel.

Hvis du dog ikke skal bruge værdierne i en anden sammenhæng (f.eks. søge på en specifik kategori i din tabel), er det ikke yderst nødvendigt.

Skrevet fre. d. 18. september 2009 kl. 19:01:17| #6

flodhesten
flodhesten (13.705 point)
Okay. Tak for hjælpen og tak for kommentarene.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Brugerliste med link til profil

Oprettet den 26. maj 2012 kl. 14.29
sayn giver 30 point for svar | Giv et svar »

php curl driller

Oprettet den 26. maj 2012 kl. 08.31
PHPnQrd giver 200 point for svar | Giv et svar »

Array i array

Oprettet den 25. maj 2012 kl. 08.32
sebster giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger