MaxP2P Skrevet 4. februar 2007 Del Skrevet 4. februar 2007 Jeg lager et "liksom søkemotor" for et webprosjekt vi har på VGS. Tanken da er at jeg har en form med et tekstfelt på en av sidene. Der kan brukeren skrive inn det de vil vite mer om. F.eks "aromaterapi". Så de skriver det inn i feltet, og trykker på submit. Hvis "if" stemmer, blir de tatt til "info_portal/aromater.html" Men hvordan er det at jeg gjør akkurat det? Også et annet spørsmål: La oss si at jeg vil at flere søkeord skal linke til samme fil, hvordan kan jeg da putte flere søkeord inn i if ($sresult == aromaterapi); Sånn ser hele koden ut nå: <div id="content"> <div class="text"> <form action="scripts/search.php" method="post"> <p>Søk etter det du vil vite mer om:</p> <input type="text" name="search" size="40" /> </form> <p>Eks.: aromaterapi, homeoterapi, masasje.</p> </div> </div> search.php: <html> <head></head> <body> <?php $sresult = $_POST["search"]; if ($sresult == aromaterapi); { echo "Dette er en artikkel om Aromaterapi"; } ?> </body> </html> Så i search.php vil jeg erstatte "echo" med at den linker til en fil som jeg beskrev ovenfor. Og at jeg kan skrive inn flere søkeord inn i samme "if". Lenke til kommentar
MaxP2P Skrevet 4. februar 2007 Forfatter Del Skrevet 4. februar 2007 Yess ^^ Takker (føler meg sikkelig dum nå.. <.<) Nå gjenstår det bare å finne ut hvordan jeg kan putte flere søkeord inn i en if () Prøvd å skille dem med komma, men det ser ikke ut til å funke Lenke til kommentar
Ståle Skrevet 4. februar 2007 Del Skrevet 4. februar 2007 du kan jo bruke switch. switch($_POST['search']) { case("aromaterapi"): include('aromaterapi.php'); break; case("annet"): include('annet.php'); break; } eller du kan jo bruke if. if ($resutlat == "noe") { include(); elseif ($resultat == "aromaterapi") inc... elseif //osv osv else Lenke til kommentar
MaxP2P Skrevet 4. februar 2007 Forfatter Del Skrevet 4. februar 2007 (endret) Takker ^^ Har begynt å skrive med elseif nå. Trodde bare at det kanskje var en kortere eller "smartere" måte å skrive dette på xD I mitt "php newbi" hodet hørtes dette ganske logist ut: if ($sresult == "aromaterapi","aroma","aromaterp"); { include ('../info_portal/aromtera.html'); } Men dette funker jo ikke seff. xD Får vel fortsette med elseif ^_^ EDIT: <?php $sresult = $_POST["search"]; if ($sresult == aromaterapi); { include ("../info_portal/aromtera.html"); } elseif ($sresult == aroma); { include ("../info_portal/aromatera.html"); } else { include ("../info_portal/error.html"); } ?> Gir følgende feilmelding: Parse error: parse error, unexpected T_ELSEIF in C:\xampplite\htdocs\maxserver\scripts\search.php on line 11 Am I missing something? Endret 4. februar 2007 av MaxP2P Lenke til kommentar
Ståle Skrevet 4. februar 2007 Del Skrevet 4. februar 2007 <?php $sresult = $_POST["search"]; if ($sresult == "aromaterapi") { include ("../info_portal/aromtera.html"); } elseif ($sresult == "aroma") { include ("../info_portal/aromatera.html"); } else { include ("../info_portal/error.html"); } ?> Lenke til kommentar
Martin A. Skrevet 4. februar 2007 Del Skrevet 4. februar 2007 <?php $res = htmlspecialchars ( $_POST['search'] ); $aromaarr = array ( 'aromaterapi', 'aroma', 'aromaterp'); if ( in_array ( $res, $aromaarr ) ) { include ( 'aromatera.html' ); } elseif ( in_array ( $res, $annetarr ) { include ( 'annet.html' ); } // ...... ?> Kan også bruk regex for å sjekke om søkesetningen inneholder 'aroma'. Lenke til kommentar
MaxP2P Skrevet 4. februar 2007 Forfatter Del Skrevet 4. februar 2007 (endret) Det der ser ut til å være akkurat det jeg har lett etter ^^ *prøver ut* Tusen takk EDIT: Fant nå ut at include () ikke var helt riktig for det jeg prøver å gjøre likevel. Det den gjør er å "importere" innholdet av den spesifiserte .html filen. Og dette fungerer jo sånn halvveis. Problemet er at dette skaper trøbbel i mappesystemet, og litt annet tull. Så det jeg egentlig treger er noe som kan rett og slett omdirigere klienten til en annen side. Eks: Her er forsiden til infoporalen: http://localhost/maxserver/info_portal.html Her ligger <form> som igjen peker til php scriptet. Så når brukeren har skrevet inn "aroma", vil jeg at han skal bli videresend til: http://localhost/maxserver/info_portal/aromtera.html og ikke til: http://localhost/maxserver/scripts/search.php slik det blir gjort nå. Sånn ser mappe strukturen ut nå: Noen ideer? ^^ EDIT 2: Etter å ha lest litt mer om header () fant jeg løsningen ^^ Endret 4. februar 2007 av MaxP2P Lenke til kommentar
ZoRaC Skrevet 5. februar 2007 Del Skrevet 5. februar 2007 Når du gjør det slik vil jeg jo ikke finne siden om jeg f.eks søker på "aromaterap"...? Om du vil matche bare filnavn kan du jo hente ut alle HTML-filer fra en spesifisert mappe og sjekke om søkestrengen finnes i hvert filnavn? Eller, du kan lage et array med beskrivelse av alle sidene og matche på det, da kan man f.eks søke på "aromaterapaut" og få opp siden, selv om det ikke er del av filnavnet. Lenke til kommentar
itsmebth Skrevet 5. februar 2007 Del Skrevet 5. februar 2007 header("Location: aromater.php"); BTW: if($_POST['search'] == ('aromaterapi' || 'aroma' || 'etc')) || er eller (or) && er og (and) Lenke til kommentar
Ståle Skrevet 5. februar 2007 Del Skrevet 5. februar 2007 Man kan også bruke mysql og LIKE='%$sokeord' da finner man alt, og det er mye enkelere. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå