Gå til innhold

Select funksjon og vise resultat på samme side


Anbefalte innlegg

hei!

 

Er stuck i verden av programmering og ønsker hjelp fra dere som kan så utrolig mye mere. Jeg ser for meg at løsning er enkel og ber dere ikke gjøre det for meg men peke meg i riktig retning.

 

Dette vil jeg ha:

 

Jeg ønsker en funksjon hvor brukeren i nettbutikken min velger først bilmerke, deretter årsmodell og tilslutt om det er bensin eller diesel. Etter de har valgt det vil jeg vise produktene som passer til valgene deres. Dette vil jeg skal skje på samme side.

 

Jeg ser for meg da 3 rullegardinsvalg (tror det heter <select> funksjoner) hvor de velger også vises resultat under.

 

Jeg har greid å lage de 3 select funksjonene, det var greit, men hvordan går jeg frem når jeg skal vise et resultat basert på 3 forskjellige select funksjoner? Bruker jeg if Else?

 

Håper dere forstår og kan peke meg i riktig retning.

Lenke til kommentar
Videoannonse
Annonse

Dette kan løses på et hav av ulike måter, og det kommer litt an på hvordan du har organisert alle dataene på serveren hvilken metode som passer best.

 

I det aller enkleste eksemplet så kan du vel bruke if/else etter å ha hentet alle resultater fra dabasen, men det blir fort rotete. Du burde heller bruke switch som sannsynligvis vil både være raskere og ryddigere for deg. Du sorterer nå likevel på et relativt lavt nivå, og en serie av if/else og switch kan fort bli veldig stor om du skal legge til flere kategorier.

 

Jeg ville anbefale deg å bruke et data access layer ala doctrine. Da lager du en 'entity' for type bil, og kan sortere resultat enkelt via de kriterier du mater doctrine.

 

Om du ikke ønsker å bruke doctrine, så må du i det minste behandle dataene dine som objekter, så du lettere kan sortere på hvert element. Du må likevel gjøre en stor jobb i databasen (som doctrine kunne gjort for deg). Ønsker du ikke å benytte deg av objekter så kan du iofs også behandle dataen som en array og sortere på den.

 

Det er kort fortalt veldig veldig mange måter å løse dette på, og uten å vite mer om hvordan data er lagret, og hvordan du får tilgang til de, blir det vanskelig å rådføre noe mer. Gi oss et par eksempler, så kan vi se på de.

Lenke til kommentar

Dette ser ut til å være samme opplegget jeg har satt opp tidligere - i flere varianter. Både AJAX basert, og ren PHP.

Du kan se et eksempel på lignendes funksjonalitet her: https://www.autopower.no/?side=Tuning og her: https://www.facebook.com/AutopowerNorge/app_313862145387754 (AJAX).

Denne varianten er ren PHP-basert: http://autoteknikk.no/?page_id=22

 

Personlig mener jeg at AJAX er den mest effektive metoden. Den responderer raskere, og er lettere å laste for mobile brukere da hele nettsiden ikke trengs å lastes på nytt for hvert valg.

PHP (den siste liunken), består av en del if/else-klareringer. Nettsiden lastes på nytt (ikke i dette tilfellet da den er plassert i en iframe) for hvert valg, og er prossesen noe tregere.

  • Liker 1
Lenke til kommentar

Dette ser ut til å være samme opplegget jeg har satt opp tidligere - i flere varianter. Både AJAX basert, og ren PHP.

Du kan se et eksempel på lignendes funksjonalitet her: https://www.autopower.no/?side=Tuning og her: https://www.facebook.com/AutopowerNorge/app_313862145387754 (AJAX).

Denne varianten er ren PHP-basert: http://autoteknikk.no/?page_id=22

 

Personlig mener jeg at AJAX er den mest effektive metoden. Den responderer raskere, og er lettere å laste for mobile brukere da hele nettsiden ikke trengs å lastes på nytt for hvert valg.

PHP (den siste liunken), består av en del if/else-klareringer. Nettsiden lastes på nytt (ikke i dette tilfellet da den er plassert i en iframe) for hvert valg, og er prossesen noe tregere.

Det er akkurat slik som den php-baserte jeg ønsker!

Jeg har en liten nettbutikk og ønsker en slik. Er det noe du tar voldsomt mye for å gjøre? Om du tar mye, kan du peke meg i riktig retning så kanskje jeg greier det selv?

Lenke til kommentar

Hvis du er kjent med php, så er det i utgangspunktet bare noen if/else klareringer til ditt behov.

Noe i denne retningen her tipper jeg:

if(!$_GET['make']):
  //  Merke er ikke valgt. Vis tilgjenglige merker.
else:
  //  Et merke er valgt.
  if(!$_GET['year']):
    //  Årsmodell er ikke valgt enda. Vis tilgjenglige årsmodeller knyttet til merke.
  else:
    //  Årsmodell er valgt.
    if(!$_GET['fuel']):
       //  Drivstoff er ikke valgt. Vis tilgjenglige drivstoff basert på kombinasjon av valgt merke og årsmodel.
    else:
      // Drivstofftype er valgt. Vis produkter som samsvarer med valgene.
    endif;  //  fuel
  endif;  //  year
endif;  //  make

Resultatet presenteres i tabeller.

  • Liker 1
Lenke til kommentar

Hvis du er kjent med php, så er det i utgangspunktet bare noen if/else klareringer til ditt behov.

Noe i denne retningen her tipper jeg:

if(!$_GET['make']):
  //  Merke er ikke valgt. Vis tilgjenglige merker.
else:
  //  Et merke er valgt.
  if(!$_GET['year']):
    //  Årsmodell er ikke valgt enda. Vis tilgjenglige årsmodeller knyttet til merke.
  else:
    //  Årsmodell er valgt.
    if(!$_GET['fuel']):
       //  Drivstoff er ikke valgt. Vis tilgjenglige drivstoff basert på kombinasjon av valgt merke og årsmodel.
    else:
      // Drivstofftype er valgt. Vis produkter som samsvarer med valgene.
    endif;  //  fuel
  endif;  //  year
endif;  //  make

Resultatet presenteres i tabeller.

Skal ærlig innrømme dette var vanskeligere enn jeg først trodde...

Jeg prøvde å putte 

 

<p>
bilmerke?
<select name="make">
  <option value="">velg...</option>
  <option value="B">BMW</option>
  <option value="V">VOLVO</option>
</select>
</p>
 
inn i det jeg fikk av deg, men da ble plutselig alt det andre synlig som tekst. skjønner ingenting...
Lenke til kommentar

 

Hvis du er kjent med php, så er det i utgangspunktet bare noen if/else klareringer til ditt behov.

Noe i denne retningen her tipper jeg:

if(!$_GET['make']):
  //  Merke er ikke valgt. Vis tilgjenglige merker.
else:
  //  Et merke er valgt.
  if(!$_GET['year']):
    //  Årsmodell er ikke valgt enda. Vis tilgjenglige årsmodeller knyttet til merke.
  else:
    //  Årsmodell er valgt.
    if(!$_GET['fuel']):
       //  Drivstoff er ikke valgt. Vis tilgjenglige drivstoff basert på kombinasjon av valgt merke og årsmodel.
    else:
      // Drivstofftype er valgt. Vis produkter som samsvarer med valgene.
    endif;  //  fuel
  endif;  //  year
endif;  //  make

Resultatet presenteres i tabeller.

Skal ærlig innrømme dette var vanskeligere enn jeg først trodde...

Jeg prøvde å putte 

 

<p>
bilmerke?
<select name="make">
  <option value="">velg...</option>
  <option value="B">BMW</option>
  <option value="V">VOLVO</option>
</select>
</p>
 
inn i det jeg fikk av deg, men da ble plutselig alt det andre synlig som tekst. skjønner ingenting...

 

Hei. Beklager sent svar.

Men om du bare har plassert teksten inn i koden jeg ga deg, så må du huske at du må åpne og lukke php. Dvs:

if(!$_GET['make']):
  //  Merke er ikke valgt. Vis tilgjenglige merker.
  ?>  //  <-- lukke php
  <p>bilmerke?</p>
    <select name="make">
      <option value="">velg...</option>
      <option value="B">BMW</option>
      <option value="V">VOLVO</option>
    </select>
  <?php  //  <-- åpne php
else:
  //  ...
endif;  //  make
Endret av Yawa
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...