webForumDet fria alternativet

Hjälp! Tom form vid registrering

ASP

7 svar · 568 visningar · startad av Jeppeweb

Medlem sedan sep. 2006462 inlägg
Frågan#1

Använder mig utav ett ajax script som ska lista olika stadsalternativ när man skriver in en ort. Fungerar så långt. Men när man valt en ort som kommer upp i listan, och sedan ska registrera så blir den formen tom.
Den verkar inte vilja lägga in informationen i databasen ?

Såhär ser koden ut i create_acc.asp

		'Kollar om anvnamnet är upptaget
		Set ObjRS = ObjConn.Execute("SELECT * FROM medlemmar where anvnamn='"& Fixbug(Request.Form("anvnamn")) &"'")

				If ObjRS.eof then

		'Användaren läggs in i databasen med SQL'n nedan
		ObjConn.Execute("INSERT INTO medlemmar (anvnamn, epost, kon, poang, visa_poang, admin, moderator, rank, icq, losen, alder, reggad, datum, stad) VALUES ('"& Fixbug(Request.Form("anvnamn")) &"', '"& Fixbug(Request.Form("epost")) &"', '"& Fixbug(Request.Form("kon")) &"' , '10', '1', '0', '0', '0', '"& Fixbug(Request.Form("stad")) &"', '"& Fixbug(Request.Form("losen")) &"', '"& alder &"', '"& now() &"', '"& now() &"') ")

select_stad.asp

<%
Dim arrStad, strStad
Response.Write "<input type=""text"" id=""CityLocal"" class=""regform"" name""stad"" />" & VbCrLf
%>

<script type="text/javascript">
function findValue(li) {
	if( li == null ) return alert("No match!");

	// if coming from an AJAX call, let's use the CityId as the value
	if( !!li.extra ) var sValue = li.extra[0];

	// otherwise, let's just display the value in the text box
	else var sValue = li.selectValue;

	alert("The value you selected was: " + sValue);
}

function selectItem(li) {
	findValue(li);
}

function formatItem(row) {
	return row[0] + " (id: " + row[1] + ")";
}

function lookupAjax(){
	var oSuggest = $("#CityAjax")[0].autocompleter;

	oSuggest.findValue();

	return false;
}

function lookupLocal(){
	var oSuggest = $("#CityLocal")[0].autocompleter;

	oSuggest.findValue();

	return false;
}

$(document).ready(function() {
	$("#CityAjax").autocomplete(
		"autocomplete_ajax.cfm",
		{
			delay:10,
			minChars:2,
			matchSubset:1,
			matchContains:1,
			cacheLength:10,
			onItemSelect:selectItem,
			onFindValue:findValue,
			formatItem:formatItem,
			autoFill:true
		}
	);

	$("#CityLocal").autocompleteArray(
		[
		
		"Abbekås", "Abborrträsk", "Abisko", "Adak", "Adelsö", "Agnesberg", "Agunnaryd", "Alafors", "Alby", "Alfta", "Alingsås", "Almunge"
		],
		{
			delay:10,
			minChars:1,
			matchSubset:1,
			onItemSelect:selectItem,
			onFindValue:findValue,
			autoFill:true,
			maxItemsToShow:10
		}
	);
});
</script>
Medlem sedan sep. 2006462 inlägg
#2

Kan tilläga att jag får det här felmeddelandet;

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Number of query values and destination fields are not the same.

/create_acc.asp, line 135

Men tar jag bort 'stad' i "INSERT INTO medlemmar", så försvinner det och man blir medlem, och då utan någon stad registrerad ^^

TACKSAM FÖR HJÄLP!

Medlem sedan dec. 19996 721 inlägg
#3

Du har glömt stad i VALUES-delen, eller nja... du har fel prylar i VALUES-delen.

Medlem sedan sep. 2006462 inlägg
#4

Hur ska den se ut då? Väldigt tacksam för hjälpen.

Medlem sedan juni 20031 837 inlägg
#5

Om du tittar på din SQL-sats så ser du har oordning bland fälten och dess värden. samt att du skriver in 14 olika fält men skickar bara med värden för 13st.

ObjConn.Execute("INSERT INTO medlemmar

 (anvnamn, 
epost, 
kon, 
poang, 
visa_poang, 
admin, 
moderator, 
rank, 
icq, 
losen, 
alder, 
reggad, 
datum, 
stad) 

VALUES ('"& Fixbug(Request.Form("anvnamn")) &"', '"&
 Fixbug(Request.Form("epost")) &"', '"& 
Fixbug(Request.Form("kon")) &"' ,
 '10',
 '1',
 '0',
 '0', 
'0', 
'"& Fixbug(Request.Form("stad")) &"', 
'"& Fixbug(Request.Form("losen")) &"', 
'"& alder &"', 
'"& now() &"',
 '"& now() &"') ")

Du har med ett ICQ-fält men skickar inte in något värde till den (eller du skickar in värdet för stad till ICQ).

Ett tips är att lagra sql-satsen i en variabel så att du kan debugga och kopiera ut SQL-satsen och kontrollera hur den verkligen ser ut (med alla värden) innan den körs.

Medlem sedan sep. 2006462 inlägg
#6

Aa, såg nu att "orttabellen" hette icq i databasen. Slarvigt.

Men, varför läggs inte informationen in i databasen?

Såhär såg select_stad.asp ut innan, då fungerade det.

<%Session.Codepage = 65001
Response.CharSet = "utf-8"%>

<%
Dim arrStad, strStad
arrStad = Split("Abbekås, Abborrträsk, Abisko, Adak, Adelsö, Agnesberg,", ", ")

Response.Write "<select id=""loginform"" class=""smallfield"" name=""stad"">" & VbCrLf
Response.Write "<option value=""v"">Välj stad</option>" & VbCrLf
For strStad = 0 To UBound(arrStad)
	Response.Write"<option value=""" & arrStad(strStad) & """>" & arrStad(strStad) & "</option>" & VbCrLf
Next
Response.Write "</select>" & VbCrLf
%>
Medlem sedan juni 200032 967 inlägg
#7

Lusläs här:

Response.Write "<input type=""text"" id=""CityLocal"" class=""regform"" name""stad"" />" & VbCrLf

Mina ögon ser inget = efter name.

Medlem sedan sep. 2006462 inlägg
#8

@nders skrev:

Lusläs här:

Response.Write "<input type=""text"" id=""CityLocal"" class=""regform"" name""stad"" />" & VbCrLf

Mina ögon ser inget = efter name.

Haha, fan vad bra att ni är så observanta! Antar att man måste vara det för att göra någon nytta i den här branschen. :bire

Självklart fungerar det nu, tyckte det var konstigt att det inte funkade förut.

Tack!

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)