Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Klientspråk > JavaScript

Ajax krånglar vid sökning

jag har följt en guid här på aspkoll om hur man skapar en sökfunktion med Ajax och ASP. Problemet blir redan innan jag sökt. Den visar diven som inte ska visas innan jag sökt och skriver ut alla rubriker.

Sedan skulle jag vilja söka i både rubriken och texten (blogg). Hur gör jag detta?

Här är min kod: http://aspkoll.se/code/?id=40

mvh Kallgard.se
ID: #2262 | Skapades: 2007-10-26 12:32:02 | Tråden har 36 svar och har lästs 3119 gånger.
Sida: 1 23

Noturo
Noturo

Gradering

#2264

Jag fick oxå problem när jag försökte testa fixa sökfunktionen. Men inte likt ditt. Min visar inte diven alls och när jag skriver något i sökrutan får jag javascript felmeddelande som säger att "'div' är odefinierad"

ID: #2264 | Skapades: 2007-10-26 14:30:22

emil
emil

Gradering

#2265

kollade lite på artikeln, du måste ha missat att asp koden ska ligga på en annan sida än den andra koden. Sen så finns det ju ett fel i javascriptet också, i statechange funktionen så används en variabel som heter div. Den är inte definerad till nått.

ID: #2265 | Skapades: 2007-10-26 14:48:50

Jag har testat att använda en seperat fil för asp koden men då fungerade det inte alls. Då visas inget.

Är det denna rad du menar?

document.getElementById(div).innerHTML=xmlHttp.responseText;

Ska jag ändra det feta till searchDiv som är namnet på diven som ska visa innehållet?:

document.getElementById(searchDiv).innerHTML=xmlHttp.responseText;

Testade det isåfall utan resultat. Den visar ingenting.

 



Redigerad av Kallgard
Anledning:
mvh Kallgard.se
ID: #2267 | Skapades: 2007-10-26 16:40:50

emil
emil

Gradering

#2268

Mm du får ju  troligtvis ett javascript fel, därför visas ingenting..

det bör vara document.getElementById("searchDiv").innerHTML = xmlHttp.responseText; 

ID: #2268 | Skapades: 2007-10-26 17:05:59

Jag testade att skriva dit searchDiv men får det ändå inte att fungera. Händer ingenting när jag ska söka.

mvh Kallgard.se
ID: #2269 | Skapades: 2007-10-26 18:22:31

Noturo
Noturo

Gradering

#2271

Exakt samma problem för mig. Skriver man dit searchDiv så ändras felmeddelandet till:

document.getElementById(...) är null eller inte ett objekt

ID: #2271 | Skapades: 2007-10-26 18:34:09

emil
emil

Gradering

#2272

då ni säger skriver dit searchDiv, menar ni då "searchDiv" eller searchDiv?

ni måste också ändra det där det står:

document.getElementById(div).innerHTML = "Söker efter "..... 


Redigerad av emil
Anledning: la till det sista

ID: #2272 | Skapades: 2007-10-26 18:40:03

Noturo
Noturo

Gradering

#2273

Nu händer det grejer.

The system cannot find the file specified.

 Vilken fil syftar den på? Inget Javascript meddelande.

ID: #2273 | Skapades: 2007-10-26 19:04:21

emil
emil

Gradering

#2274

Aa antog nästan att det var så att ni inte tog med "", då ni skriver searchDiv syftar ni på variabeln searchDiv.. alltså samma fel som då ni skriver div... om ni istället skriver "searchDiv" så är det en sträng konstant.

Kan ge dig ett tips på vad som är fel, så det blir lite att klura på.. det är fel i javascriptet. den frågar servern efter en fil som troligtvis inte finns (det är nämligen en slump om den finns eller ej), gå igenom anropen till servern rätt noga så hittar du det förhoppnigsvis.

ID: #2274 | Skapades: 2007-10-26 19:25:36

Noturo
Noturo

Gradering

#2275

Och jag antog att det skulle stå rätt i artikeln :)

Är ingen höjdare på Javascript så jag hittar inget fel!

ID: #2275 | Skapades: 2007-10-26 19:30:43

emil
emil

Gradering

#2276

Citerar Noturo:

Och jag antog att det skulle stå rätt i artikeln :)

Hehe.. joo det är ju inte helt galet att anta det.. :P

Ok men ska försöka förklara vad som är fel. Om man kollar på den här raden
xmlHttp.open("GET", page + "searchWord=" + document.getElementById("searchWord").value + "&rnd=" + Math.random() ,true)
så ser man att den ska anropa sidan page + "searchWord="... och så vidare. Om nu page innehåller 'sok.asp' (som den gör i koden som Kallgard postade). Så kommer scriptet fråga efter sidan "sok.aspsearchWord=" ... och så vidare. Det är inte direkt troligt att en sådan sida finns va? och sen så slås den ihop med ett slumpvärde (därav att det är en slump om sidan finns eller ej).

det ska istället stå xmlHttp.open("GET", page + "?searchWord=".....
Sedan ett sista litet påpekande så är det lämpligt att URL encoda värdet som man söker på, annars kan det dyka upp ytterligare fel men har det inte i huvudet hur man gör det i javascript (har för mig att det ska finnas en funktion för det) har inte heller tid att kolla upp det just nu.

ID: #2276 | Skapades: 2007-10-26 19:42:17

Noturo
Noturo

Gradering

#2277

Nu fungerade det! Tack så mycket för hjälpen!

Ska kolla upp det där.

ID: #2277 | Skapades: 2007-10-26 19:50:26

Jag får det fortfarande inte att fungera. Jag gjorde som ni sa men fick det inte att fungera. Kan någon av er kolla vad jag gjort för fel av det som ni sa att vi skulle skriva.

Nu när jag skriver i sök fältet kommer det upp ett till sökfält med det som jag skrivit i och det står:

Du sökte på bla bla bla.. http://kallgard.se/mattias/sok.asp

Min kod: http://aspkoll.se/code/?id=41

mvh Kallgard.se
ID: #2278 | Skapades: 2007-10-26 20:20:50

emil
emil

Gradering

#2280

Allt i scriptet är rätt förutom att du har gjort en liten miss..
<input type="text" name="searchWord" onKeyUp="makeRequest('sok.asp','searchDiv'); showSearch('searchDiv');" /><br />
du har skrivit 'sok.asp' i den raden, det är den sidan som innehåller asp koden som ska stå där.

ID: #2280 | Skapades: 2007-10-26 21:19:22

Ojsan:) Tack. Men nu när jag söker fungerar det kontsigt, när jag skriver exempelvis Test. Visas inget resultat när jag ksriver. SKriver jag bara Tes visas resultatet. Alltså när man skriver in varannan bokstav visas resultatet.

http://kallgard.se/mattias/sok.asp

Varför går det inte heller att trycka på enter för att söka? Går inte det?

mvh Kallgard.se
ID: #2283 | Skapades: 2007-10-26 21:42:12
Sida: 1 23
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy