ERLEDIGT
JA
JA
ANTWORTEN
9
9
ZUGRIFFE
502
502
EMPFEHLEN
-
05.09.10 21:36 #1
- Registriert seit
- Jun 2008
- Ort
- Nah bei Köln
- Beiträge
- 252
Hallo zusammen,
meine ersten Anfänge in Ajax, also bidde nicht beschweren. Habe versucht eine AutoSuggest-Box umzufriemeln, um wie z.B. bei Youtube bei klick auf ein Listenelement die URL direkt aufzurufen. Mein Problem ist folgendes: Die Funktion "fill(string)" wird aufgerufen, der erste Befehl "$('#country').val(thisValue);" auch korrekt ausgeführt. Enthaltener Wert (z.B. "Shrek 2") wird auch in die Textbox (id: country) übertragen. Nur bei der Übergabe von thisValue an die redirect.php hapert es ein bisschen. Es wird nur "undefined" übergeben, obwohl thisValue ja eigentlich "Shrek 2" enthält. Wo ist mein Problem?
Danke im Voraus!
Code :1 2 3 4 5 6 7 8 9 10 11
function fill(thisValue) { $('#country').val(thisValue); $.post("redirect.php", {queryString: ""+thisValue+""}, function(data){ if(data.length >0) { window.location.href= data; } }); setTimeout("$('#suggestions').fadeOut();", 300); }
-
Moin,
dein Code enthält für sich keinen Fehler, die Funktion sendet bei mir den korrekten Wert.
Poste mal bitte mehr, z.B. den Part, aus dem hervorgeht, wo/wie die Funktion fill() aufgerufen wird.
-
06.09.10 18:10 #3
- Registriert seit
- Jun 2008
- Ort
- Nah bei Köln
- Beiträge
- 252
Hey Sven,
danke für die Antwort. Bestätigt immerhin, dass ich nicht ganz deppert bin
Der Code steht in einer PHP, die die AutoSuggest-Box generiert. Hier der Schnipsel:
Code :1 2 3 4
foreach($names as $name) { echo '<li onClick="fill(\''.htmlentities(addslashes($name)).'\');">'.htmlentities($name).'</li>'; }
Im Klartext:
HTML-Code:<li onClick="fill('Shrek 2');">Shrek 2</li>
-
Hmm, auch das funktioniert problemlos bei mir.
Bist du sicher, dass du in der redirect.php die korrekte Variable abfragst-> $_POST['queryString']
-
06.09.10 21:56 #5
- Registriert seit
- Jun 2008
- Ort
- Nah bei Köln
- Beiträge
- 252
Muss ja eigentlich. PHP würde niemals "undefined" in Variablen schreiben, wenn sie leer ist. Das kuriose ist ja, dass er den Text in dasTExtfeld setzt, aber danach urplötzlich "thisValue" "undefined" ist.
-
Mmmh,
ich bekomme diesen Fehler nicht reproduziert
Besteht die Möglichkeit, eine Demo dessen online zu Stellen?
-
07.09.10 16:36 #7
- Registriert seit
- Jun 2008
- Ort
- Nah bei Köln
- Beiträge
- 252
Geht Per PN raus!
-
07.09.10 16:36 #8
- Registriert seit
- Jun 2008
- Ort
- Nah bei Köln
- Beiträge
- 252
BTW: Benutze Firefox (Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8)
-
Schaue mal in das input#country
Dort steht folgendes:
onblur="fill();"
fill() wird ohne Parameter aufgerufen, wenn es den Fokus verliert...ergibt "undefined"
Prüfe vor $.post() , ob fill() überhaupt einen Parameter übergeben bekommen hat.
Wenn nicht, dann führe blende nur #suggestions aus und mache sonst nichts.
Sollte ca. so aussehen(ungetestet)Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
function fill(thisValue) { if(typeof thisValue=='String' && thisValue.match(/\S/)) { $('#country').val(thisValue); $.post("redirect.php", {queryString: ""+thisValue+""}, function(data) { if(data.length >0) { window.location.href= data; } }); } setTimeout("$('#suggestions').fadeOut();", 300); }
Ansonsten: du solltest sicher stellen, dass die redirect.php wirklich nur URLs ausgibt, wenn sie ein Ergebnis hat, und nichts sonst(momentan gibts dort im Fehlerfall eine PHP-Fehlermeldung, welche den User ins Nirvana schickt, weil diese Fehlermeldung keine URL ist).
Du könntest da im Fehlerfall auch bspw. einen anderen HTTP-Status-Header senden als 200, dann landet $.post() nicht in der Callback-Funktion.Geändert von Sven Mintel (07.09.10 um 17:07 Uhr)
-
08.09.10 19:54 #10
- Registriert seit
- Jun 2008
- Ort
- Nah bei Köln
- Beiträge
- 252
Hey Sven,
du bist ein Schatz! Joa, ich sende einfach ein "#" und dann ist gut.
Ähnliche Themen
-
Prüfen ob eine Double-Variable Daten enthält
Von Dziko im Forum JavaAntworten: 6Letzter Beitrag: 11.02.10, 08:44 -
$_ SERVER Variable die den kompletten URL enthält
Von soezkan im Forum PHPAntworten: 3Letzter Beitrag: 23.07.09, 12:45 -
[Matlab] Überprüfen ob eine Variable einen Wert enthält
Von venom im Forum Sonstige SprachenAntworten: 6Letzter Beitrag: 18.03.08, 11:22 -
Übergabe einer Variable an eine Seite, die ein iframe enthält
Von CarpeNoctem im Forum PHPAntworten: 2Letzter Beitrag: 01.05.07, 16:07 -
Taskmng.exe enthält Virus
Von putzi im Forum Security (Viren, Trojaner, Spam)Antworten: 4Letzter Beitrag: 21.09.06, 23:06





Zitieren
Login




