Auto Complete

Crav3X

Erfahrenes Mitglied
Hi,

habe hier ein Autocomplete Script um bei eingabe bestimmter Buchstaben den "Namen" zu vervollständigen.

hier der Code:

PHP:
<?php

$suche = $_REQUEST['vorname'];
$wert = array("Marie", "Stephan", "Tobias", "Jens", "Uwe", "Mario", "Stephanie");

foreach($wert as $wert) if (strpos($wert, $suche) === 0) 
$ergebnis .="<li>".$wert."</li>\n";
echo "<ul>\n".$ergebnis."</ul>";
?>

Er gibt mir immer diese Meldung zurück:
Code:
Notice: Undefined variable: ergebnis in /srv/www/htdocs/web-develop-12/adress_complete.php on line 7

Nur versteh ich nicht wieso da auch zusätzlich das gewünschte ergebniss mit übermittelt wird... nur nicht verarbeitet...

Weiß jemand was da los ist?

Danke
 
Der .= Operator in

PHP:
$ergebnis .="<li>".$wert."</li>\n";
erfordert eine Variable, die du noch nicht initialisiert hast.

PHP:
<?php 

$suche = $_REQUEST['vorname']; 
$wert = array("Marie", "Stephan", "Tobias", "Jens", "Uwe", "Mario", "Stephanie"); 
$ergebnis = "";
foreach($wert as $wert) if (strpos($wert, $suche) === 0)  
$ergebnis .="<li>".$wert."</li>\n"; 
echo "<ul>\n".$ergebnis."</ul>"; 
?>
So sollte es klappen
 
Ey,

ich glaub das nicht... Genau das hatte ich vorher gemacht... und es hat nicht funktioniert...

ok ich habe
PHP:
$ergebnis = 0;
gemacht... aber hätte trotzdem gehen müssen oder!?
Ach ne... der setzts ja hinten dran...

Vielen Dank...

*selbstaufdiefingerhau*
 
Du könntest es auch direkt ausgeben:
PHP:
echo "<ul>\n";
foreach($wert as $wert) {
	if (strpos($wert, $suche) === 0) {
		echo "<li>".$wert."</li>\n";
	}
}
echo "</ul>";
 
Nochmals danke für die Hilfe,

nun möchte der Onkel aber etwas spielen^^

Wie könnte ich bei Eingabe eines kleinbuchstabe... den Buchstaben auf ein Großbuchstabe ändern...

Da bei eingabe eines kleinen buchstaben keine übereinstimmung des Arrays statt findet...

Also wenn zb: "ste" eingegeben wird... soll trotzdem "Stephan und Stephanie" ausgegeben werden...

Hat da jemand eine Idee!?

Vielen Dank
 
Hallo!

Wenn keine Sonderzeichen/Umlaute an 1. Stelle vorkommen, dann kannst Du mit ucfirst() das 1. Zeichen in ein Grossbuchstaben umwandeln lassen.

Gruss Dr Dau
 
Zurück