JQuery Autocomplete mit Daten aus MS-SQL 2008

maede

Grünschnabel
Hallo zusammen

Ich möchte das Autocomplete-Beispiel von JQuery (siehe Code weiter unten) in eine Web-App, die noch in Classic ASP geschrieben ist, übernehmen.

Mit den statischen Daten funktioniert das bestens. Wie schaffe ich es nun, dass ich Daten aus einer Tabelle auf dem MS-SQL Server 2008 in das Autocomplete bringe?

Danke für Eure Hilfe
Maede


Code:
<script>
	$(function() {
		var availableTags = [
			"ActionScript",
			"AppleScript",
			"Asp",
			"BASIC",
			"C",
			"C++",
			"Clojure",
			"COBOL",
			"ColdFusion",
			"Erlang",
			"Fortran",
			"Groovy",
			"Haskell",
			"Java",
			"JavaScript",
			"Lisp",
			"Perl",
			"PHP",
			"Python",
			"Ruby",
			"Scala",
			"Scheme"
		];
		$( "#tags" ).autocomplete({
			source: availableTags
		});
	});
	</script>


	
<div class="demo">

<div class="ui-widget">
	<label for="tags">Tags: </label>
	<input id="tags">
</div>

</div><!-- End demo -->



<div style="display: none;" class="demo-description">
<p>The Autocomplete widgets provides suggestions while you type into the field. Here the suggestions are tags for programming languages, give "ja" (for Java or JavaScript) a try.</p>
<p>The datasource is a simple JavaScript array, provided to the widget using the source-option.</p>
</div><!-- End demo-description -->
 
Hi,

wie der Dokumentation für remote-Daten zu entnehmen ist
The datasource is a server-side script which returns JSON data, specified via a simple URL for the source-option.
muss auf der Serverseite ein JSON-String aus den Daten erstellt und zurückgegeben werden.

Der String könnte in etwa wie nachstehen aussehen:
Code:
'["ActionScript","AppleScript","Asp","BASIC","C","C++","Clojure","COBOL","ColdFusion","Erlang","Fortran","Groovy","Haskell","Java","JavaScript","Lisp","Perl","PHP","Python","Ruby","Scala","Scheme"] '
Weitere Informationen zu JSON findest du unter json.org.

Ciao
Quaese
 
Hallo Quaese

Danke für Deine Antwort und den Link. Ich habe mich jetzt eingelesen und schaffe es den entsprechenden JSON-Output zu generieren. Leider schaffe ich es immer noch nicht, diesen Stream nun an das JQuery-Beispiel - siehe oben - anzubinden ...

Kannst Du mir da nochmals helfen. Danke.

Gruss
 
Hi,

du musst als Datenquelle das Daten-erzeugende ASP-Script angeben.
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<script src="jquery-1.5.1.min.js" type="text/javascript"></script>
<script src="jquery-ui-1.8.11.min.js" type="text/javascript"></script>
<script type="text/javascript">
  <!--
    $(function() {
        $( "#tags" ).autocomplete({
            source: 'request.asp'
        });
    });
 //-->
</script>
</head>
<body>
<input type="text" id="tags">
</body>
</html>
Im ASP-Script wird nach der Datenbankabfrage am Ende der JSON-String mit Response.write eingefügt.

request.asp:
Code:
<%
' ToDo: Datenbank-Abfrage und Datenaufbereitung

' Beispiel, um sich vorstellen zu können, wie der String aufgebaut sein kann
Response.write("[""ActionScript"",""AppleScript""]") 
%>
Ich hoffe, das hilft dir weiter.

Ciao
Quaese
 
Danke für Deine schnelle Antwort. Es funktioniert bestens.

Leider werden jedoch immer alle Einträge gezeigt - nicht einschränkenden, wie es sein sollte.

Ich erstelle die Daten wie folgt:

Code:
Dim cSQL, Var, cName, nCount

cSQL ="Select * From Addresses Where Lastname is not Null And ZIPCode ='8001'"
Set rsTmp =conn.Execute(cSQL)

nCount =0

Var ="["

Do While Not rsTmp.Eof
	If nCount >0 Then
		Var =Var & ","
	End If
	cName =Trim(rsTmp("Firstname")) & " " & Trim(rsTmp("Lastname"))
	Var =Var & """" & cName & """" 
	rsTmp.MoveNext
	nCount =nCount +1
Loop

Var =Var & "]"

Response.Write(Var)

Das Ergebnis sieht dann etwa so aus:

["Dr. med. Hans Muster","Hubert Meier","Hans Müller"]

Gewünscht wäre jetzt, dass wenn ich Hans eingebe die beiden Namen mit Hans zur Auswahl kämen ...
 
Zurück