Avatar billede janbb Juniormester
05. maj 2004 - 04:25 Der er 9 kommentarer og
1 løsning

et-spørgsmåls-søgning ok, men ?

Forme og mig :o) ikke helt godt
POST og GET og mig - heller ikke
kramper mig lidt frem.
Ville lave et søgeprogram med et SQL-udtryk i en DB (*.gdb)
Slap ikke helt godt fra det, men der sker alligevel 'noget'.
Når jeg søger på et enkelt bogstav fungerer programmet -
men bruger jeg mere end 1 bogstav i søgefeltet udkommer en blank side ?.

<form action="output.asp" method="get">
Søgeord:
<input type="text" name="search"><br>
<input type="submit">
</form>

______________________________________________________

<% @language=javascript %>
<%
strAction = Request.QueryString("search")


connection1= Server.CreateObject("ADODB.Connection");
connection1.open("DSN=titler;UID=**;PWD=**");
sql = "select job_code,job_title from job WHERE job_title LIKE '%"+(strAction)+"%'";
res = connection1.execute(sql);
while (!res.EOF) {
%>
<body bgcolor="#c0c0c0"><table border="1"><tr><td>
<tr>
<td><%=res.fields("job_code")%></td>

<td><%=res.fields("job_title")%></td>
</tr><br>
<%
res.MoveNext();
}
%>

<%
connection1.close();
%>

My indrømme strAction var lidt af et eksperiment.
er der noget bedre ?
Avatar billede jpvj Nybegynder
05. maj 2004 - 04:49 #1
Prøv lige at udskrive strAction før du laver dit SQL kald.
Avatar billede jpvj Nybegynder
05. maj 2004 - 04:52 #2
Aaah... Det er lige præcis POST/GET problematikken - du benytter en forkert metode til at hente din variabel.

Læs: http://www.w3schools.com/asp/asp_inputforms.asp

Request.Form
The Request.Form command is used to collect values in a form with method="post". Information sent from a form with the POST method is invisible to others and has no limits on the amount of information to send.
Avatar billede janbb Juniormester
05. maj 2004 - 14:12 #3
som jeg forstår dit svar foreslår du at jeg bruger POST
og
search=Request.Form("search")

den side du henviste til bruger osse noget med size
det var måske en idee
Søgeord: <input type="text" name="search" size="20">

Prøver et par ting så.
Avatar billede janbb Juniormester
05. maj 2004 - 15:01 #4
jpvj:
Desværre var der ingen af dine forslag, der virkede.
Af 'en eller anden grund' er det ret skrøbeligt og
faktisk bevirkede begge dine forslag både hver for sig og i kombination
- at det holdt op med at virke ?
Ja sådan er det når jeg kaster sig ud i noget der er mere kompliceret end
jeg helt kan forstå :o)
Henvisningen var ellers fin mht 'forme'.
Avatar billede janbb Juniormester
05. maj 2004 - 15:05 #5
kan det være et problem at jeg bruger samme ord for den nye streng ?
search=Request.Form("search")
ja det kan jeg jo self. efterprøve - lidt senere tror jeg.
Avatar billede roenving Novice
05. maj 2004 - 16:48 #6
Nej, der skulle ikke være problemer, når du gør det sådan, men dumt er det alligevel ...
Avatar billede janbb Juniormester
06. maj 2004 - 02:58 #7
hej roenving - det var vist dig der hjalp mig med og lave connectiondelen i programmet her.

Jeg prøver at incorporere en søgedel.Har fået lavet (med lidt hjælp fra E :o) )
et program i PHP, der fungerer fint.Har imidlertid ikke kunnet få held med et connection program til *.gdb filer i PHP, men derimod i Javascript.

PHP-programmet ser sådan ud:

< form action="<?php echo $_SERVER[PHP_SELF]; ?>" method="POST"> Søgeord: <input type="text" name="search">
<input type="submit"> <?php if ((isset($_POST[search])) && ($_POST[search] != ""))
{ // mySQL Definitons
$MYSQL_DEFS = array();
$MYSQL_DEFS["host"] = "localhost";
$MYSQL_DEFS["user"] = "username";
$MYSQL_DEFS["password"] = "password";
$MYSQL_DEFS["db"] = "databasename";
mysql_connect($MYSQL_DEFS["host"],$MYSQL_DEFS["user"],$MYSQL_DEFS["password"]); mysql_select_db($MYSQL_DEFS["db"]);
$q = mysql_query("SELECT * FROM minsql WHERE emne LIKE '%".$_POST['search']."%'") or die(mysql_error());
// "SELECT * FROM minsql WHERE emne LIKE '%".$_POST['search']."%'" if (mysql_num_rows($q)) { while ($r = mysql_fetch_assoc($q)) { echo "Nummer: ".$r['nummer']."
Emne: ".$r['emne']."
Forfatter: ".$r['forfatter']."
Tekst: ".$r['tekst']."
"; } } } ?>

Og her anbringes selve strengvariablen i SQL-sætningen, men det virker ikke i Javascript.
Avatar billede janbb Juniormester
06. maj 2004 - 03:13 #8
Og foreløbig er jeg bare så 'lykkelig' over at apostrofferne i SQL-sætningen åbenbart er de samme i Javascript, da jeg svedte temmelig længe for at få dem anbragt rigtig (dobbelte apostroffer omkring strengudtrykket og enkelte apostroffer
omkring resten.Kender disse opostrof-problemer fra Delphi programmer gennem tiden
og ud over at drive een til vanvid er der osse flere gange hvor man simpelthen må give op.
Men som sagt synes der ikke at være apostrof-problemer, idet der som sagt kan søges:
med eet bogstav ?.Lidt pusseløjerligt.
Avatar billede janbb Juniormester
06. maj 2004 - 03:18 #9
Den der metode echo $_SERVER[PHP_SELF]; - findes der en tilsvarende i Javascript ?.
Avatar billede janbb Juniormester
06. maj 2004 - 05:35 #10
Har fået det til at virke:
Forklaringen synes at være at det skal være et memofelt man søger i -
og det er jo ok når bare man ved det.
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