Frage zu AJAX autocomplete script.aculo.us

BaseBallBatBoy

Erfahrenes Mitglied
hallo!

ich habe mir script.aculo.us heruntergeladen und die files prototype.js, scriptaculous.js, builder.js, effects.js, dragdrop.js, slider.js, sound.js, unittest.js und controls.js im ordner ajax/scriptaculous abgelegt.

nun möchte ich eine livesearch funktion haben, die auf meine DB zugreifft und prüft, ob der name darin vorkommt und das resultat per autocomplete darstellt.

meine files sehen folgendermassen aus:
HTML:
	<script src="ajax/scriptaculous/prototype.js" type="text/javascript"></script>
	<script src="ajax/scriptaclous/scriptaculous.js" type="text/javascript"></script>

<h2>Suche einen Namen</h2>
	 <div style="float:left; width:15em;">Nachname</div>
		<input type="text" id="name" name="name" />
		<div id="autocompleteResult" class="autocomplete"></div>
		<script type="text/javascript">	
			new Ajax.Autocompleter("name", "autocompleteResult", "ajax/showAutocompleteName.php", "minChars=1");
		</script>

showAutocompleteName.php
PHP:
<?php
if(isset($_POST['name'])){
	$con = mysql_connect('localhost', 'root', '');
	if (!$con)
 	{
 	die('Could not connect: ' . mysql_error());
	 }

	mysql_select_db("bandbase", $con);

		$sql="SELECT PK_sEmail, DF_sPrename, DF_sLastname, DF_sPlace FROM users WHERE DF_sLastname LIKE '".$_POST['name']."%'";

	$result = mysql_query($sql);
	
    echo "<ul>";
        while($row = mysql_fetch_array($result))
            echo "<li>" . $row['DF_sPrename'] . " " . $row['DF_sLastname'] . "</li>"; 
    echo "</ul>";

    mysql_close($con);
}
?>

wenn ich nun das ganze laufen lasse, passiert einfach gar nix. ich geb den text ein und es rührt sich nix...

falls jemand eine idee hat was ich falsch mache, wäre ich sehr froh über einen tipp.

gruss BBBB
 
Hi,

der vierte Parameter (options) der Autocompleter-Methode muss als Objekt übergeben werden:
Code:
new Ajax.Autocompleter("name", "autocompleteResult", "../scriptaculous_autocompleter.php", {minChars: 1});

Ciao
Quaese
 
danke für den tipp. hab ich auch gleich geändert, allerdings gehts immer noch nicht.

noch ein hinweis: wenn ich mit dem IE laufen lasse und noch gar keine eingabe im inputfeld getätigt habe, erscheint bereits unten links ein symbol mit ausrufezeichen. wenn ich darauf doppelklicke zeigt er mir den fehler an: object expected auf zeile 70. dies ist gerade die new Ajax.Autocompleter zeile.... eine idee?
 
Hi,

sind die Bezeichnungen name und autocompleteResult richtig geschrieben und existieren?

Wenn das Problem nur im IE auftritt, eventuell mal die Bezeichnung name ändern.

Mehr kann ich sonst nicht dazu sagen, da es in meinem Testdokument problemlos läuft.

Ciao
Quaese
 
hi

ich habe den 'name' nun wie du gesagt hast geändert. ausserdem habe ich noch den fehler entdeckt, dass meine javascript-files gar nicht im head inkludiert werden. also hab ich die noch in den head gepackt. der fehler 'object expected' erschein nun nicht mehr! allerdings passiert immer noch nichts bei einer eingabe ins inputfeld...

was ich dann noch probiert habe ist mal alle pfade absolut anzugeben, aber auch das klappte nicht.
dann habe ich mal testweise ein echo zuoberst in showAutocompleteName.php plaziert. aber wenn ich nun etwas schreibe erscheint das echo nie... somit habe ich die vermutung, dass der gar nie in meine php klasse kommt...
was ich noch vergessen hatte zu erwähnen ist, dass ich mit der template engine smarty arbeite. also mein html code ist in einem tpl file und nicht html. also dachte ich smarty könnte ja evt. das problem sein und habe mal meinen html coder in eine test.html kopiert. aber auch da tut sich nix....

ich weis echt nicht was ich sonst noch machen könnte.... schliesslich hab ich doch das gefühl dass ich es genau so gemacht habe wies mir diverse tutorials auf dem web vorschlagen.....
wär also echt cool wenn mir jemand meine fehlüberlegung zeigen könnte!

gruss BBBB
 

Neue Beiträge

Zurück