insætte pre-select value fra database i dropdown

Tags:    php

Hej

Så har jeg virkelig gjort i nælderne !

Jeg sidder og forsøger at få noget data fra min database ind i en dropdown liste som allerede har indhold dvs. at jeg den værdi, som jeg har i databasen skal stå som selected>db_felt_indhold</option>.

Ja, det lyder som sort snak, selv for mig ! så derfor vil nedenstående kode forhåbentlig hjælpe:

Fold kodeboks ind/udHTML kode 


lad os sige at mit indhold i listen med biler kommer fra en <?php include 'biler'; ?>

Fold kodeboks ind/udPHP kode 


og i min database er en bruger, som har en bil af bilmærket Fiat

Når jeg ønsker at redigere brugeren i min formular, så skal bilmærket Fiat stå i dropdown listen på siden når jeg henter brugerens data ind dvs. at der skal indsættes en selected attribut efter value"fiat" så listen nu ser således ud:

Fold kodeboks ind/udHTML kode 



Men er det overhovedet muligt ? - jeg, med min stærkt begrænset php-viden, aner ikke mine levende råd !



Indlæg senest redigeret d. 18.04.2014 02:40 af Bruger #16670
9 svar postet i denne tråd vises herunder
5 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Det er muligt. Her er et ganske simpelt eksempel på hvordan det kan gøres. Det er pseudo-kode så du skal selvfølgelig rette det til inden du skal bruge det.
Fold kodeboks ind/udPHP kode 

Herefter skulle du gerne få dette output:
Fold kodeboks ind/udHTML kode 




Hvis du i stedet for biler.php laver en fil kaldet biler.txt og deri skriver dette:
Fold kodeboks ind/udKode 


Osv.

Så kan du vha file_get_contents() hente dine data ud og derefter behandle dem næsten som hvis de kom fra en database.
Jeg ved ikke om du har forsøgt at kigge på denne side, da de har rigtig mange gode vejledninger til tingene og de viser også noget omkring php og diverse database API'er. Alternativt kan du også kigge her. De er godt nok på engelsk, men man kan lære meget. Der er specifikt noget om hvordan man arbejder med tekstfiler.



Hej Henrik.

Jeg skal lige forstå det rigtig hvad det er du ønsker som resultat da jeg ikke helt forstår hvad du vil/skal?



Glad for at du kunne bruge min kodestump.
Det er ikke nogen skam at lave beregninger/logik på dine visningssider, men min overbevisning er dog at man skal skille tingene i hver sin fil.

F.eks. code-logic.php til alle beregninger/logik som skilles i klasser(OOP) og funktioner. Dine visninger af resultater foretager du så i en fil der f.eks. hedder view.php som er den fil hvor du viser data.
Det er selvfølgelig den simple måde at dele tingene op på. Nu ved jeg ikke hvor langt du er med din uddannelse, så jeg vil ikke begynde at trække eksempler fra den CMS-platform jeg er ved at udvikle i min fritid, da den indeholder nogle forholdsvis komplicerede opsætninger og hvor jeg springer mellem flere forskellige filer, da jeg har inddelt alt efter hvilken kategori en funktion hører under.
Nedenstående er blot em simplificeret liste over hvad jeg har og filerne hedder af sikkerhedsmæssige årsager ikke det samme som nedenstående.
Fold kodeboks ind/udKode 


Det var ganske simpelt den måde jeg gør det på. Og alt ligger selvfølgelig i et underbibliotek og er beskyttet med en separat index.php samt .htaccess fil.



Et simpel og stadig effektiv kodestump du har fundet dig. Den ville sagtens kunne implementeres.

Din mappestruktur er heller ikke helt ved siden af. Der er tydeligvis nogen der har gjort sig tanker omkring tingene.

Folk har forskellige måder at lære tingene på. Jeg har det selv bedst ved Learning-by-doing og hvis jeg støder på noget jeg ikke kender til eller ikke kan finde ud af, så findes der et hav af videoer og andre vejledninger som kan hjælpe folk godt igang.



Hej

@Kenneth Hansen

Jeg skal lige huske at takke dig for pseudo koden - det er jo næsten "lige ud af landevejen", så det burde jo ikke give mig nogen problemer whatsoever, at tilrette koden og bruge den i mit project...

Men det gør den imidlertid ! - ja, det er som sådan ikke din kode der er noget galt med, men derimod mig som har været en spade ved ikke at sørge for at bilmærkerne kommer fra et database kolonne.

Jeg har jo lavet en fil som indeholder bilmærkerne og nu forsøger jeg så at lave et array(), som får sit indhold fra min php fil kaldet biler.php

Fold kodeboks ind/udPHP kode 


jeg prøver noget i stil med:

Fold kodeboks ind/udPHP kode 


så jeg derved kunne få et array, som indeholder:

array(

[0] => echo "<option value='volvo'>Volvo</option>";
[1] => echo "<option value='saab'>Saab</option>";
[2] => echo "<option value='fiat'>Fiat</option>";
[3] => echo "<option value='audi'>Audi</option>";

);

så tænke jeg at jeg måske kunne begynde at rode lidt den, men måske bliver det alt for besværligt...

hele miseren er opstået fordi jeg jo bruger data fra min biler.php i en include i en dropdown liste:

<select name="carbrands"><?php include 'biler.php'; ?></select>
- vel mest fordi jeg var doven.

Ja, jeg sidder her og leder febrilsk efter en tudekiks og spekulerer samtidig på om ikke der muligt at genererer et array() ud fra indholdet af biler.php ?





@Kenneth Hansen

Takker for din hjælp - nemprogrammering.dk kender jeg godt og jeg har set flere af videoerne på siden.

Siden mit sidste indlæg, så har jeg valgt at flytte bilmærkerne ind i en database - ja, det måtte jo ende med, at jeg måtte bøje mig i støvet...!

Det er så også lykkedes mig, med din kodestump i baghovedet (jeg vil gerne undgå, at skrive af eller copy & paste), at få lavet en sammenligning af et bilmærke med en liste (fra databasen) af bilmærker på en side som jeg kalder code_biler.php og det virker sådan set fint - det er jo det samme som du viser i kodestumpen.

Nu kommer så den, for mig, bøvlet del...

Jeg har den filosofi omkring html og php; at man skal foretage beregninger/manipulationer af data på en side (f.eks. code_biler.php) og herefter sende resultatet til en side f.eks. edit_biler.php som en $_SESSION og det er her mit problem er:

For jeg er blevet anbefalet af min lærer, at lave en sammenligning på siden edit_biler.php af hvad jeg har i min $_SESSION og se om der et match med den liste af bilmærker der står i dropdown listen med bilmærker på siden.

Den idé er jeg ikke så vild med... - jeg ville foretrække, hvis det var muligt, at sende en dropdown liste til siden edit_biler.php med enten en liste hvor brugerens bil var pre-selected og hvis der ikke var et match, så sende en dropdown liste uden en pre-select.

På den måde, så er jeg fri for at foretage sammenligninger på edit_biler.php

1. Men kan man det ?

2. gør jeg det alt for besværligt for mig selv ?

Måske du ikke kan hjælpe mig (så må jeg bede en af code-wizards'ene på mit hold om en hånd), men ellers er jeg også interesseret i, at høre om din (og andre brugeres) holdning min "struktur-filosofi".

EDIT

Jeg sad og spekulerede på om man eventuelt kunne...






Indlæg senest redigeret d. 23.04.2014 00:01 af Bruger #16670
@Kenneth Hansen

Jeg er i gang med 1. del af hovedforløbet, hvor vi lære bliver introduceret for alt det basale: SQL, PHP, jQuery, MySQLi, AJAX - sjovt nok ser det ikke ud til, at vi får JavaScript !

Omkring din struktur, så vir ker den ikke fremmede for mig, da jeg selv gør brug af noget lignende:

min mappe struktur er i reglen opbygget således;

admin:

admin

includes: her er alle include filer jeg bruger i admin delen
vimages: billeder i admin delen
code: alle de php filer hvor jeg foretager beregninger/manipulationer/udtrækker fra database/indsætter i database osv. man ser aldrig disse sider da man bliver videresendt automatisk
admin: her er alle filer som jeg bruger til at administrerer backend'en altså oprette, redigerer, slette.

Frontend:

css: giver vist sig selv !
images: alle billeder som findes bruges i forbindelse med layout
includes: alt som skal inkluderes på flere sider i frontend.

Så som du kan se, så forsøger jeg at adskille hvad der er frontend og backend i min mappe struktur.

Jeg har lært at have denne struktur fra en klassekammerat og på skolen har vi også haft teori omkring god (mappe)struktur.

EDIT:

Måske har jeg fundet svaret eller den en kodestump, som kan løse mine problemer:

Fold kodeboks ind/udPHP kode 


Link til kodestump - phpro.org - Dropdown-Select-With-PHP-and-MySQL







Indlæg senest redigeret d. 23.04.2014 22:56 af Bruger #16670
Et simpel og stadig effektiv kodestump du har fundet dig. Den ville sagtens kunne implementeres.


Ja, jeg synes også den var rimelig cool og fundet var bestemt værd at dele med andre.



Din mappestruktur er heller ikke helt ved siden af. Der er tydeligvis nogen der har gjort sig tanker omkring tingene.


Jeg takker for rosen og synes det er rart at blive bekræftet i (fra andre end lærer og studiekammerater), at man er inde på det rigtige spor strukturmæssig.



Folk har forskellige måder at lære tingene på. Jeg har det selv bedst ved Learning-by-doing og hvis jeg støder på noget jeg ikke kender til eller ikke kan finde ud af, så findes der et hav af videoer og andre vejledninger som kan hjælpe folk godt igang.


Det kan jeg til fulde tilslutte mig til - jeg lære også bedst ved at prøve det selv, da desværre ikke besidder så store intellekt, at jeg kan overskue og lære, blot ved at læse om tingene, faktisk så fortalt en af mine studiekammerater (en af de seje kode karle på mit hold) mig at han også har sat og slidt med tingene indtil han kunne overskue hvordan og hvorledes tingene var skruet sammen, så vi to er vist ikke de eneste der lære bedst ved Learning-by-doing.










t