---
title: "<hr> Följer inte familjenummer(ASP, Javascript)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/126146-hr-följer-inte-familjenummer-asp-javascript"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Frella"
published: "2005-04-11T09:36:32.000Z"
updated: "2005-04-20T12:48:17.000Z"
replies: 18
views: 657
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/126146-hr-följer-inte-familjenummer-asp-javascript"
---

# <hr> Följer inte familjenummer(ASP, Javascript)

## #1 — Frella, 2005-04-11T09:36Z

Jag har ett problem, jag har skrivit  en kod som ska göra en \<hr\> efter varje familjenummer. Problemet just nu är att det skapas en \<hr\> efter varannan medlem och inte då familjenumren skiljer sig från varandra som det är tänkt att det ska göra. Tex att om det finns 4 medlemmar i familj 1 så ska \<hr\> dras efter dessa 4, innan den går till nästa familj osv.

Bifogar nuvarande kod, hoppas någon kan hjälpa.

```
<%
var current = 0;
var familj = 0;

while(rsMedlemmar && !rsMedlemmar.EOF)
{
familj = rsMedlemmar("Familjenummer");
	
	if(familj =! current) 
	{
		Response.Write("<tr><td colspan=9>");
		Response.Write("<hr noshade></td></tr>");
	}
%>
<tr id="famlista_cross_namn">
<td><%=rsMedlemmar("Efternamn")%></td>
<td><%=rsMedlemmar("Förnamn")%></td>
<td><%=rsMedlemmar("Adress")%></td>
<td><%=rsMedlemmar("Postnummer")%></td>
<td><%=rsMedlemmar("Ort")%></td>
<td><%=rsMedlemmar("Telefon")%></td>
<td><%=rsMedlemmar("Mobiltelefon")%></td>
<td><%=rsMedlemmar("Medlemsnummer")%></td>
<td><%=rsMedlemmar("Familjenummer")%></td>
</tr>

<%
current=familj;
rsMedlemmar.MoveNext();
}
%>
</table>
<%
rsMedlemmar.Close();
rsMedlemmar = null;
%>
```

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

## #2 — @nders, 2005-04-11T09:40Z

Borde inte det här funka?

```
<%
var current = 0;
var familj = 0;

while(rsMedlemmar && !rsMedlemmar.EOF)
{
familj = rsMedlemmar("Familjenummer");
	
	if(familj != current && current != 0) 
	{
		Response.Write("<tr><td colspan=9>");
		Response.Write("<hr noshade></td></tr>");
		current=familj;
	}
%>
<tr id="famlista_cross_namn">
<td><%=rsMedlemmar("Efternamn")%></td>
<td><%=rsMedlemmar("Förnamn")%></td>
<td><%=rsMedlemmar("Adress")%></td>
<td><%=rsMedlemmar("Postnummer")%></td>
<td><%=rsMedlemmar("Ort")%></td>
<td><%=rsMedlemmar("Telefon")%></td>
<td><%=rsMedlemmar("Mobiltelefon")%></td>
<td><%=rsMedlemmar("Medlemsnummer")%></td>
<td><%=rsMedlemmar("Familjenummer")%></td>
</tr>

<%
rsMedlemmar.MoveNext();
}
%>
</table>
<%
rsMedlemmar.Close();
rsMedlemmar = null;
%>
```

mvh

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

## #3 — LarsG, 2005-04-11T09:42Z

Hmm

```
if(familj =! current)
```

```
if(familj != current)
```

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

## #4 — Frella, 2005-04-11T09:53Z

@anders: Nu får jag inte med en enda \<hr\>, den skriver bara listan rakt uppochned...

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

## #5 — @nders, 2005-04-11T11:00Z

Nä, självklart. Mitt misstag. Så här borde det se ut.

```
	if(familj != current) 
	{
		if (current != 0) {
			Response.Write("<tr><td colspan=9>");
			Response.Write("<hr noshade></td></tr>");
		}
		current=familj;
	}
```

edit: du kanske vill ha en linje ovanför den översta familjen? Ta bort den inre if-satsen i så fall.

mvh

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

## #6 — Frella, 2005-04-11T11:24Z

Tyvärr så funkar det inte ändå, jag får fortfarande bara en rak lista utan några som helst linjer.

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

## #7 — @nders, 2005-04-11T11:25Z

Hur ser hela kodstycket ut nu alltså?

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

## #8 — Frella, 2005-04-11T11:50Z

Ser ut som följer

```
<html>
<head>
<title>Familjelista NMK</title>
<link rel=stylesheet href="main.css" type="text/css">
</head>
<body id="famlista">
<%@ Language="javascript" %>
<%
var conn = Server.CreateObject("ADODB.Connection");
conn.open = "Driver={Microsoft Access Driver (*.mdb)};dbq=c:/inetpub/wwwroot/test/Medlemsregister.mdb";
var strSQL = "SELECT [QRY_BASE_Alla medlemmar].*, [QRY_BASE_Alla familjer].Efternamn FROM [QRY_BASE_Alla familjer] INNER JOIN [QRY_BASE_Alla medlemmar] ON [QRY_BASE_Alla familjer].Familjenummer = [QRY_BASE_Alla medlemmar].Familjenummer ORDER BY [QRY_BASE_Alla familjer].Familjenummer";

rsMedlemmar = conn.Execute(strSQL);
%>
<table id="famlista_tbl" cellpadding="0" cellspacing="0">
<tr>
<td><h3>Familjelista NMK</h3></td>
</tr>
<tr id="famlista_cross_rubrik">
<td><h5><h5>Efternamn</h5></td><td><h5>Förnamn</h5></td><td><h5>Adress</h5></td><td><h5>Postnr</h5></td><td><h5>Ort</h5></td><td><h5>Telnr</h5></td><td><h5>Mobilnr</h5></td><td><h5>Medlemsnr</h5></td><td><h5>Familjenr</h5></td>
</tr>
<%
var current = 0;
var familj = 0;

while(rsMedlemmar && !rsMedlemmar.EOF)
{
familj = rsMedlemmar("Familjenummer");
	
	if(familj != current) 
	{
		if (current != 0) {
			Response.Write("<tr><td colspan=9>");
			Response.Write("<hr noshade></td></tr>");
		}
		current=familj;
	}
%>
<tr id="famlista_cross_namn">
<td><%=rsMedlemmar("Efternamn")%></td>
<td><%=rsMedlemmar("Förnamn")%></td>
<td><%=rsMedlemmar("Adress")%></td>
<td><%=rsMedlemmar("Postnummer")%></td>
<td><%=rsMedlemmar("Ort")%></td>
<td><%=rsMedlemmar("Telefon")%></td>
<td><%=rsMedlemmar("Mobiltelefon")%></td>
<td><%=rsMedlemmar("Medlemsnummer")%></td>
<td><%=rsMedlemmar("Familjenummer")%></td>
</tr>

<%
rsMedlemmar.MoveNext();
}
%>
</table>
<%
rsMedlemmar.Close();
rsMedlemmar = null;
%>
</body>
</html>
```

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

## #9 — @nders, 2005-04-11T12:06Z

Gör lite testutskrifter för att se vad *familj* resp. *current* innehåller. Jag tycker dock att det ser rätt ut...

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

## #10 — Frella, 2005-04-11T12:12Z

Testade det och det den skriver ut är True för familj och False för Current, alternativt 1 och 0. Men varför bool?

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

## #11 — Frella, 2005-04-11T13:44Z

Allting verkar uppdateras innan utskriften, alltså blir resultatet alltid samma. Nån lösning med pekare eller nåt annat vis kanske?

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

## #12 — J.N., 2005-04-11T13:54Z

HEJ!

Men, @nders, kan man verkligen skriva != i VBScript?

Det finns inte med i dokumentationen (på DevGuru), men det kanske är inbyggt underförstått att det ska fungera?

<http://www.devguru.com/Technologies/vbscript/quickref/vbscript_list.html>

Jag använder alltid \<\> istället.
<http://www.devguru.com/Technologies/vbscript/quickref/inequality.html>

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

## #13 — @nders, 2005-04-11T14:00Z

J.N., vi pratar inte VBScript.

Men, nej, man kan inte skriva != i VBScript.

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

## #14 — J.N., 2005-04-11T14:07Z

HEJ!

> **@nders skrev:**
>
> J.N., vi pratar inte VBScript.
> 
> Men, nej, man kan inte skriva != i VBScript.

Nä, det gör vi ju inte, det står ju tom i rubriken. :r 

Kontrollerade dessutom att det var inom \<% %\>, men missade helt att det kan vara Javascript ändå!

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

## #15 — Frella, 2005-04-18T13:44Z

Ingen som har något nytt att komma med här? Lade detta på is ett tag då det inte funkade, och det gör det fortfarande inte nu när jag testat igen. Oerhört frustrerande.

Som jag sa innan så verkar det som att Current och Familj byter värde samtidigt, och värdet verkar heller inte sparas, alltså är de alltid lika, därav inga linjer...

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

## #16 — Jesper T, 2005-04-18T14:30Z

Typkonvertera lite:

```
var current = 0;

while(rsMedlemmar && !rsMedlemmar.EOF)
{
	if(current!=parseFloat(rsMedlemmar("Familjenummer"))) 
	{
		if (current != 0) {
			Response.Write("<tr><td colspan=9>");
			Response.Write("<hr noshade></td></tr>");
		}
		current=parseFloat(rsMedlemmar("Familjenummer"));
	}
```

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

## #17 — Frella, 2005-04-19T07:16Z

Tack!, funkade kanon nu. men varför kan man inte spara så som jag testade innan? Och vad är parseFloat? Förutom att den verkar spara currents värde på ett bättre sätt än en egen variabel.

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

## #18 — Jesper T, 2005-04-20T11:09Z

Visst, du kan lägga in det i en variabel också.
Men när värdet kommer ifrån databasen så är datatypen en sträng/variant och då kan du inte göra en jämförelse med ett tal.
Du kan även använda parseInt() för heltal.

```
var current = 0;
var familj;
while(rsMedlemmar && !rsMedlemmar.EOF)
{
familj = parseInt(rsMedlemmar("Familjenummer"));
	if(current!=familj)
	{
		if (current != 0) {
			Response.Write("<tr><td colspan=9>");
			Response.Write("<hr noshade></td></tr>");
		}
		current=familj;
	}
```

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

## #19 — Frella, 2005-04-20T12:48Z

Ok, jag försökte göra det till en int, men på samma sätt som i c++, då jag inte hittade nåt exempel. Men det funkade ju inget vidare, men då är jag med.

Tack återigen.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/126146-hr-följer-inte-familjenummer-asp-javascript
