Hallo Sander,
schaue Dir das mal an, wie es jetzt aussieht:
Der Link steht im Quelltext.
Es scheint, als wenn ich da der Lösung auf die spur gekommen bin. Bisher habe ich "nur" mit dem Bundesland experimentiert.
Ich würde gerne Deine Meinung zum Code wissen und wo dort noch etwas zu obtimieren ist.
Wenn es komplett steht, dann möchte ich als nächstes eine Verbindung zur Plz-Datenbank aus der Bib errichten, wodurch dann sicher auch Bundesländer und in Zukunft auch Regierungsbezirke eingeschlossen werden können.
<perl>
#######################################################
# Variablen definieren #
#######################################################
$db = "benutzerverwaltung";
#######################################################
#######################################################
# Alle Datenbankeinträge holen und wohnortsrtsauswahl #
# bauen (nur die Orte, die Verans eingetr. haben) - #
# Array füllen, Doubletten verhindern #
#######################################################
$tmpBundesland=$Bundesland;
$tmpPostleitzahl=$Postleitzahl;
$tmpWohnort=$Wohnort;
get "Wohnort==$Wohnort Bundesland==$Bundesland Postleitzahl==$Postleitzahl" , "$db";
while(get_next("$db"))
{
$Wohnort=lc($Wohnort);
if ($Wohnort gt "a")
{
push @opWohnort, $Wohnort if index("@opWohnort", "$Wohnort")<0;
if ($Bundesland gt "A")
{
push @opBundesland, $Bundesland if index("@opBundesland", "$Bundesland")<0;
}
push @opPostleitzahl, $Postleitzahl if index("@opPostleitzahl", "$Postleitzahl")<0;
}
EOF
}
$Bundesland=$tmpBundesland;
$Postleitzahl=$tmpPostleitzahl;
$Wohnort=$tmpWohnort;
#######################################################
# Aufbereitung der Arraywerte von @opWohnort für #
# (Drop-Down - option-ausgabe) #
#######################################################
@opWohnort_sort= sort @opWohnort;
foreach $l_ort (@opWohnort_sort)
{
$list_opWohnort=$list_opWohnort."<option value=$l_ort>$l_ort</option>";
}
#######################################################
# Aufbereitung der Arraywerte von @opBundesland für #
# (Drop-Down - option-ausgabe) #
#######################################################
@opBundesland_sort= sort @opBundesland;
foreach $l_Bundesland (@opBundesland_sort)
{
$list_opBundesland=$list_opBundesland."<option value=$l_Bundesland>$l_Bundesland</option>";
}
#######################################################
# Aufbereitung der Arraywerte von @opPostleitzahl für #
# (Drop-Down - option-ausgabe) #
#######################################################
@opPostleitzahl_sort= sort @opPostleitzahl;
foreach $l_Postleitzahl (@opPostleitzahl_sort)
{
$list_opPostleitzahl=$list_opPostleitzahl."<option value=$l_Postleitzahl>$l_Postleitzahl</option>";
}
#######################################################
</perl>
<form name="Wohnort" action="http://baseportal.de/cgi-bin/baseportal.pl?htx=/RogerPeterWerner/P/ortwahl" method="post" enctype="multipart/form-data" target="_self">
<!-- Bundeslandsuche Optionfeld-->
Bundesland
<font size=2>
<perl>
if ($Bundesland eq "")
{
out<<EOF;
<select name="Bundesland:=" onchange="this.form.submit()"style="background-color:#d3d3d3;
font-size:9pt; color:#003264; font-family:Arial,sans-serif;"><option value="">alle</option>
EOF
}
else
{
out<<EOF;
<select name="Bundesland:=" onchange="this.form.submit()"style="background-color:#d3d3d3;
font-size:9pt; color:#003264; font-family:Arial,sans-serif;"><option value=$Bundesland>$Bundesland</option>
<option value="">alle</option>
EOF
}
</perl>
$list_opBundesland
</select></font><br>
<!--Ende Bundeslandfeld Wohnort-->
<!-- PLZsuche Optionfeld-->
Postleitzahl
<font size=2>
<select name="Postleitzahl:=" onchange="this.form.submit()"><option value="">alle</option>
$list_opPostleitzahl
</select></font>
<!--Ende Optionsfeld PLZ-->
<!-- Ortssuche Optionfeld-->
Ort
<font size=2>
<select name="Wohnort:=" onchange="this.form.submit()"><option value="">alle</option>
$list_opWohnort
</select></font><br>
<!--Ende Optionsfeld Wohnort-->
<form name="Wohnort" action="http://baseportal.de/cgi-bin/baseportal.pl?htx=/RogerPeterWerner/P/ortwahl2" method="post" enctype="multipart/form-data" target="_self">
<input type=hidden name="Bundesland:=" value="$Bundesland">
<input type=hidden name="Postleitzahl:=" value="$Postleitzahl">
<input type=hidden name="Wohnort:=" value="$Wohnort">
<perl>
if ($Bundesland ne "")
{
out "Auswahl: ",$Bundesland,"<br>";
}
else
{
out "Alle Bundesländer<br>";
}
if ($Postleitzahl ne "")
{
out "Postleitzahl: ",$Postleitzahl,"<br>";
}
else
{
out "Keine bestimmte Postleitzahl<br>";
}
if ($Wohnort ne "")
{
out "Wohnort: ",$Wohnort,"<br>";
}
else
{
out "Kein bestimmter Ort<br>";
}
</perl>
<input type="Submit" name="" value="Suchen">
-------------ende--------------
Hast Du einen Codeschnipsel, mit dem ich in einem Durchlauf in meiner Datenbank alle Orte umschreiben kann, so daß immer der erste Buchstabe groß geschrieben wird, auch beim 2. Wort, bei Doppelnamen. Und Leerzeichen, wie bei:
Köln Chorweiler durch ein "-" ersetzt werden?
Danke,
Roger