Avatar billede olinuxo Nybegynder
09. juli 2004 - 23:33 Der er 6 kommentarer og
2 løsninger

Tekst-felt i PHP

Hej Eksperter.

Jeg skal på mit site bruge en søgefunktion.

Jeg havde forstillet mig at jeg skulle bruge et tekst-felt lign. dette:

  <input type="text" name="FindField" size="20">

kan jeg så via en knap få søgeteksten til en $_GET-funktion?

Altså, hvis jeg skriver "Eksperten" i søge feltet, og trykker på en knap, vil jeg blive henvist til siden:

  index.php?FindField=Eksperten


Jeg håber dette var forklarligt nok, og håber på hjælp :D
Avatar billede jaw Nybegynder
09. juli 2004 - 23:35 #1
Ikke helt. Det du kan er, at sætte en action="find.php"

på denne side, vil $_POST['FindField']; indeholde det der blev indtastet i formen på siden før :)
Avatar billede olinuxo Nybegynder
09. juli 2004 - 23:37 #2
Okay. Jeg prøver lige dit bud.

Imellemtiden, kan du så ikke komme med dit bud, hvorledes du ville lave en søgefunktion, hvor efter når søgeordet bliver grevet med en $_GET-funktion??

På forhånd tak!
Avatar billede jaw Nybegynder
09. juli 2004 - 23:39 #3
_Skal_ det være $_GET[]? Og hvor vil du søge, i en database?
Avatar billede olinuxo Nybegynder
09. juli 2004 - 23:40 #4
Undskyld. Det havde jeg helt glemt af oplyse.

Ja, jeg har en mySQL-database, hvori jeg kunne tænke mig at søge i en tabel.
Avatar billede olinuxo Nybegynder
09. juli 2004 - 23:44 #5
Jeg kunne somsagt godt tænke mig, et søge felt, med en trykknap. Når man så trykker på knappen, bliver ordet i søgefeltet "smidt" op BAG denne kode:

  index.php?FindField=
Avatar billede jaw Nybegynder
09. juli 2004 - 23:53 #6
Tjah, hmm... Det ved jeg så ikke liiige helt umiddelbart hvordan du får med forms. Gider næsten ikke bikse med det, men kan lave et eksempel med $_POST[];

Vi holder fast i action="find.php" :

--- find.php ---

<?

mysql_connect("host","user","pass") or die(mysql_error());
mysql_select_db("database-navn") or die(mysql_error());

$find = $_POST['FindField'];
$q = mysql_query("SELECT * FROM tabel WHERE felt LIKE '%$find'");
$antal_fundne = mysql_num_rows($q);

if($antal > 0) {
  echo"Fundet:";
  while($row = mysql_fetch_array($q)) {
    echo $row['felt'] . "<br>";
  }
} else {
  echo "Der blev ikke fundet noget...!";
}

?>

Ovenstående LIKE '%$find%' vil søge på alt der indeholder værdien af $find. % = wildcard så LIKE '$find%' vil kun finde noget hvis feltet starter med værdien af $find.

Forståeligt?? :)
Avatar billede acid-head Nybegynder
10. juli 2004 - 17:16 #7
<form methost="GET" action="index.php">
<input type="text" name="FindField" size="20">
<input type="submit" value="OK">
</form>

Når du submitter den med ordet "eksperten", vil du komme til en side: index.php?FindField=eksperten

Var det ikke det du mente?
Avatar billede olinuxo Nybegynder
10. juli 2004 - 21:21 #8
Tak acid-head. Det var lige den jeg søgte.

Jeg giver acid-head 60 point for hans svar, og giver jaw 10 point for hans lille fif med LIKE funktionen...
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