---
title: "Problem med Ajax (Hämta Info)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/163845-problem-med-ajax-hämta-info"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "SGuncel"
published: "2007-08-26T02:24:54.000Z"
updated: "2007-09-01T06:12:33.000Z"
replies: 17
views: 856
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/163845-problem-med-ajax-hämta-info"
---

# Problem med Ajax (Hämta Info)

## #1 — SGuncel, 2007-08-26T02:24Z

Har försökt och hämta info från databasen utan att uppdatera sidan men får ej Ajax fungera.

Jag skulle vilja skriva ut Lajv meddelanden på sidan utan att uppdatera framen.

Så här ser mina koder ut:
Själva meny sidan där de ska skrivas ut + att javascript koden är med.
<http://www.aspsidan.se/code/default.asp?c=7853>

Här skrivs alla meddelande ut:
<http://www.aspsidan.se/code/default.asp?c=7854>

Kollat på artikeln i ASPsidan och har gjort.
<http://www.aspsidan.se/default.asp?page=readArticle&artId=533>

Permalänk: https://www.webforum.nu/p/163845

## #2 — voigtann1, 2007-08-26T06:48Z

vad händer? Eller vad händer inte rättare sagt?

Permalänk: https://www.webforum.nu/p/2019757

## #3 — Peter S, 2007-08-26T07:59Z

...samt: det saknas apostrofer kring argument #2 i

```
http_request.open('GET',menu.asp, true);
```

Permalänk: https://www.webforum.nu/p/2019759

## #4 — SGuncel, 2007-08-26T10:49Z

> **voigtann1 skrev:**
>
> vad händer? Eller vad händer inte rättare sagt?

Det blir bara blank, alltså det skrivs inget.

Permalänk: https://www.webforum.nu/p/2019791

## #5 — voigtann1, 2007-08-26T11:09Z

javascript fel? tips - Ladda ner Firebug till Firefox så kan du även se vad som skickas och vad du får i retur med ajax.

Permalänk: https://www.webforum.nu/p/2019800

## #6 — SGuncel, 2007-08-26T11:33Z

Den hitta inte något fel. Nej då, ingen fel på javascript koden. 
Men fick denna svaret:
menu is not defined
makeRequest("BCMessages.asp?rnd=0.8914897498095955")menu.asp (line 46)
\[Break on this error\] http_request.open('GET',menu.asp, true); //Här skickas parametern URL in.

Permalänk: https://www.webforum.nu/p/2019810

## #7 — Peter S, 2007-08-26T11:38Z

> **Peter S skrev:**
>
> ...samt: det saknas apostrofer kring argument #2 i
>
> ```
> http_request.open('GET',menu.asp, true);
> ```

 (y)

Permalänk: https://www.webforum.nu/p/2019812

## #8 — SGuncel, 2007-08-26T11:55Z

Det börjar hända grejer men det skrivs ändå inte ut :S
Så här står det:
GET New/BCMessages.asp (63ms)    menu.asp (line 47)

jag tror att det är nåt fel här:

```
http_request.send(null); //och så sker anropet med SEND()
```

Peter S, gjorde det du sa. Efter det fick jag denna resultatet.

Permalänk: https://www.webforum.nu/p/2019818

## #9 — Peter S, 2007-08-26T11:59Z

Får du något felmeddelande?

Permalänk: https://www.webforum.nu/p/2019819

## #10 — SGuncel, 2007-08-26T12:08Z

Neej, denna script skrivs ut på sidan men det visas inte.

```
<!-- #include file="DB.asp" --><!-- #include file="RegExp.asp" -->
<%
	Set ObjRS = ObjConn.Execute("Select * From BC ORDER BY BCTime desc LIMIT 10")	
%>
<script type="text/javascript">
/*Example message arrays for the two demo scrollers*/
var pausecontent2=new Array()
<% Dim i
i = 0
Do until ObjRS.Eof
        If i = 10 Then Exit Do

Response.Write "pausecontent2[" & i & "]='<span class=""LastBCUserName""><a href=""../UsrProfile/Profil.asp?UsrID=" & Replace(ObjRS("UsrID"),"'","\'") & """ target=""Start"">" & Replace(ObjRS("UsrTLAlias"),"'","\'") & "</a>:</span> <span class=""LastBCMessage"">" & Replace(byt(ObjRS("BCMessage")),"'","\'") & "</span>';" & vbcrlf

	i = i + 1
	ObjRS.MoveNext
Loop
%>
</script>
```

Permalänk: https://www.webforum.nu/p/2019825

## #11 — Peter S, 2007-08-26T12:14Z

Vad gör pausescroller()? Den delen av koden skrivs nämligen över...

Permalänk: https://www.webforum.nu/p/2019830

## #12 — SGuncel, 2007-08-26T12:17Z

När jag klickar på "Log calls to makeRequest"
Får jag detta:
makeRequest("menu.asp?rnd=0.9509537453179723")menu.asp (line 20)
GET New/BCMessages.asp (78ms)menu.asp (line 47)

Jag ändrade på BCMessage.asp och skrev "hejsan" dp skrevs det ut när jag klickade på "Log calls to makeRequest". Men nu så fungerar det inte. 

Ska jag skriva något adress i URL?

```
function makeRequest([b]url[/b]) { //Märk väl att vi skickar in sidan som vi ska öppna som parameter (url)
```

EDIT:
Det är scriptet som skriver ut Lajvmeddelanden.
Här kan du se: <http://www.dynamicdrive.com/dynamicindex2/crosstick.htm>

Permalänk: https://www.webforum.nu/p/2019832

## #13 — Peter S, 2007-08-26T12:20Z

Nej, det verkar vara meningen att du skall skriva

```
http_request.open('GET', url, true);
```

Permalänk: https://www.webforum.nu/p/2019836

## #14 — SGuncel, 2007-08-26T12:26Z

När jag gjorde så så fick jag felet:
missing formal parameter
\[Break on this error\] function makeRequest('BCMessages.asp') { //Märk väl att vi skickar in sidan so...

Permalänk: https://www.webforum.nu/p/2019840

## #15 — Peter S, 2007-08-26T14:45Z

Står det så här i din kod nu

```
function makeRequest('BCMessages.asp'){
```

?

I sådana fall skall du ändra det till vad det var innan. I stället skall du på den kodraden jag senast postade, byta ut 'menu.asp' till url.

Radera följande stycke från din kod:

```
<script type="text/javascript">
//new pausescroller(name_of_message_array, CSS_ID, CSS_classname, pause_in_miliseconds)

new pausescroller(pausecontent2, "pscroller2", "someclass", 10000)

</script></
```

Skapa en \<div\> eller någon annan "behållare" och sätt ett id = "pausecontent" på den.

Lägg till följande ovanför function makeRequest() innanför \<script\>:

```
var isFirstTime = true;
```

Modifiera alertContents() till:

```
function alertContents(http_request) { //Det är hit vi kommer sen

  if (http_request.readyState == 4) { //Om allt har laddat klart...
  if (http_request.status == 200) { //kontrollera ifall allt är OK, för isåfall...
  document.getElementById('pausecontent').innerHTML = http_request.responseText; //hämta texten och visa den i en DIV (lajv)
    if (isFirstTime){
      isFirstTime = false;
      new pausescroller(pausecontent2, "BCMessages", "someclass", 10000);
    }
  } else {
  document.getElementById('BCMessages').innerHTML = "Ett fel uppstod vid hämting av Broadcast meddelanden."; //...annars så har något gått snett
  }
  }
```

Permalänk: https://www.webforum.nu/p/2019884

## #16 — SGuncel, 2007-08-27T12:43Z

Nästan så har jag löst allt, men det är bara en sak kvar :)
Allt på koden jag kommer visas men förutom lajv meddelanden. Lajv meddelanden visas där allt skrivs ut innan den kommer till sidan där de egentligen ska visas.

Här är allt som skrivs ut innan den kommer till "menulogin.asp"
Här kan jag se allt till och med lajv meddelanden. Allt fungerar som det ska på denna sida.
**LastLogin.asp**

```
<!-- #include file="DB.asp" --><!-- #include file="RegExp.asp" -->
<html>
	<head>
	
<link rel="stylesheet" href="../_Style/ToppStyle.css" type="text/css">
<script src="BC_Message_Script.js" language="JavaScript" type="text/javascript"></script>
	
<%
	Set ObjRS = ObjConn.Execute("Select * From BC ORDER BY BCTime desc LIMIT 10")	
%>
<script type="text/javascript">
/*Example message arrays for the two demo scrollers*/
var pausecontent2=new Array()
<% Dim i
i = 0
Do until ObjRS.Eof
        If i = 10 Then Exit Do

Response.Write "pausecontent2[" & i & "]='<span style=""font-weight:bold""><a href=""../UsrProfile/Profil.asp?UsrID=" & Replace(ObjRS("UsrID"),"'","\'") & """ target=""Start"">" & Replace(ObjRS("UsrTLAlias"),"'","\'") & "</a>:</span> " & Replace(byt(ObjRS("BCMessage")),"'","\'") & "';" & vbcrlf

	i = i + 1
	ObjRS.MoveNext
Loop
%>
</script>
	</head>

<body>

</body>

</html>

<%
	Set ObjRS2 = ObjConn.Execute("Select * from TLUsers where UsrStats='Online' order by UsrLastLogin DESC LIMIT 1")
																													%>
						<table border="0" cellpadding="0" cellspacing="0" height="42" width="891">
							<tr>
								<td>
									<table border="0" cellpadding="0" cellspacing="0" height="59" width="888">
										<tr>
											<td height="59" width="56" style="padding-left: 1px;">							
												<%
													IF Len(ObjRS2("UsrPic")& "") > 0 then
												%>
												<img src="<%=ObjRS2("UsrPic")%>" width="56" height="59">
												<%		
														else
												%>
												<img width="56" height="59" src="../_Grafik/ingen_bild.gif">
												<%
													End if
												%>
								
											</td>
								
											<td height="59" width="320" style="padding-top: 38px; padding-left: 10px;">
												<span class="LastLoginBlack"><strong><%=ObjRS2("UsrTLAlias")%></strong> har precis loggat in</span> <span class="LastLoginGrey">- <%=FormatDateTime(ObjRS2("UsrLastLogin"),vbshorttime)%></span>
											</td>
								
											<td height="59" width="500">
											</td>
								
										</tr>
									</table>
<%
	ObjRS2.Close : Set ObjRS2 = Nothing
										%>
									
											<!-- 
												HÄR SLUTAR LOGIN OCH HÄR BÖRJAR BROADCAST
																						 -->
									
										<table border="0" cellpadding="0" cellspacing="0" height="25" width="887">
											<tr>
												<td height="25" width="59">
													<a href="../BC/Broadcast_Send.asp">
													<img src="pxl.gif" width="58" height="21" border="0"></a>
												</td>
												<td height="25" style="padding-top: 0px; padding-left: 8px;">					
                  									<script type="text/javascript">
														new pausescroller(pausecontent2, "pscroller2", "someclass", 10000)
				 									</script>
												</td>

											</tr>
										</table>
<%
	ObjRS.Close : Set ObjRS = Nothing
										%>
								</td>
							</tr>
						</table>
```

Det är här allt som ska visas.
Men här kan man inte se lajv meddelanden. Får ingen fel meddelande och inget fel på javascript koden.
**menulogin.asp:**

```
<!-- #include file="DB.asp" --><!-- #include file="LoginCheck.asp" --><!-- #include file="RegExp.asp" -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
	<head>
		<meta http-equiv="Content-Language" content="sv">
		<!-- 
	Copyright © 2005-2007 .
 -->
<title></title>
<meta name="copyright" content="Copyright © 2005-2007">
<meta name="description" content="Din Community På Nätet">
<meta name="keywords" content="">
<meta name="author" content="">

		<link rel="stylesheet" type="text/css" href="menu.css">
<script src="LastLogin.js" language="JavaScript" type="text/javascript"></script>

	</head>
	<body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0">

			<table border="0" cellpadding="0" cellspacing="0" width="893" height="79">
				<tr>
					<td id="Topsidan" class="topContainer" height="79">
					</td>
				</tr>
			</table>
	
					
	</body>
</html>
```

Och tillsist så kommer Ajax javascript koden.
**Lastlogin.js:**

```
  function makeRequest(url) { //Märk väl att vi skickar in sidan som vi ska öppna som parameter (url)
  var http_request = false;

  if (window.XMLHttpRequest) { // Detta är fö Mozilla, Safari, ...
  http_request = new XMLHttpRequest();
  if (http_request.overrideMimeType) {
  http_request.overrideMimeType('text/xml');
  // See note below about this line
  }
  } else if (window.ActiveXObject) { // Detta är för Internet Explorer

  try { //Här måste vi köra en try och catch för IE så vi får rätt objekt
  http_request = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
  try {
  http_request = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e) {}
  }

  }

  if (!http_request) { //om anropet är fortfarande falskt så har vi inte lyckats, varna om det
  alert('Kunde inte hämta senaste inloggade.');
  return false;
  }

  http_request.onreadystatechange = function() { alertContents(http_request); }; //Nu pekar vi på den funktionen vi vill aktivera
  http_request.open('GET','Lastlogin.asp', true); //Här skickas parametern URL in
  http_request.send(null); //och så sker anropet med SEND()

  }

  function alertContents(http_request) { //Det är hit vi kommer sen

  if (http_request.readyState == 4) { //Om allt har laddat klart...
  if (http_request.status == 200) { //kontrollera ifall allt är OK, för isåfall...
  document.getElementById('Topsidan').innerHTML = http_request.responseText; //hämta texten och visa den i en DIV (lajv)
  } else {
  document.getElementById('Topsidan').innerHTML = "Ett fel uppstod vid hämting av senaste inloggade."; //...annars så har något gått snett
  }
  }

  }

  //Här skapar jag en timer som ska anropa min sida var 10:e sekund
  //Detta är självklart valfrimakeRequesttt, du kan välja att istället använda en länk för att aktivera det hela
  //Märk väl att jag använder mig av Math.random() i länken, jag ska förklara nedan varför.
  var interval = setInterval("makeRequest('menulogin.asp?rnd='+Math.random())",10000);
```

Vad kan felet vara?

Permalänk: https://www.webforum.nu/p/2020166

## #17 — SGuncel, 2007-08-31T21:21Z

Kan man ha flera Ajax script på en sida?

Permalänk: https://www.webforum.nu/p/2021221

## #18 — voigtann1, 2007-09-01T06:12Z

ja.. men inte samma funktions namn för anropen... du kan bygga en global funktion som hämtar saker med AJAX men ändra olika div / span / taggar med anroppen från olika sidor. Men man ska inte bli allt för "beroende" av Ajax... använd det bara där det kan behövas :)

Permalänk: https://www.webforum.nu/p/2021271

---

Tråden på webben: https://www.webforum.nu/amne/asp/163845-problem-med-ajax-hämta-info
