Selectbox

kbit

Erfahrenes Mitglied
Sorry schon mal für den Titel mir ist keiner eingefallen wie ich das sonst beschreiben sollte.

Hi ich hab folgendes Problem bin mir aber auch noch nicht ganz sicher ob man das mit JS oder mit PHP/Html lösen kann. Erstmal beschreibe ich was ich genau mache.
Also ich erzeuge mir eine selectbox Dynamisch aus einer DB. Dort lasse ich mir die Orte ausgeben. Wenn ich nun einen Ort auswähle und in dem textfeld (strassen) eine Straße eingebe sucht er in der DB nach dem zugehörigen Ort und der Straße und gibt die aus.(die Ausgabe habe ich mal weg gelassen) Dies funktioniert auch wunderbar.

PHP:
$sql = "SELECT C_ID,Ort FROM City"; 
$row_sel = mysql_query($sql) or die(mysql_error());  

echo '<form action="'.$_SERVER['SCRIPT_NAME'].'" method="GET">
Stadt: <select name="staedte" size="1">';

        while ($select=mysql_fetch_array($row_sel)){
        echo '<option value="'.$select['C_ID'].'">'.$select['Ort'].' </option>';
        } 
echo '</select>

<input type="text" name="strassen" />
<input type="submit" name ="submit" value="suchen">';
if(isset($_GET['submit'])){
    $sql = "SELECT s.S_Name,s.S_PLZ,c.Ort
    FROM strassen s, City c
	WHERE s.C_ID=c.C_ID
	AND c.C_ID ='".$_GET['staedte']."' 
	AND s.S_Name= '".$_GET['strassen']."' 
	ORDER BY c.ort ASC LIMIT 0,30";

Hier hab ich eine 2 Datei (1 Datei wird hier includet), die mir am Anfang wenn Name noch nicht gesetzt ist die Buchstaben von A-Z ausgibt. Klickt man auf einen Buchstaben so bekommt man als Ausgabe alle Strassen mit dem zugehörigen Anfangsbuchstaben. Das Funktioniert auch.

PHP:
if(empty($_GET['Name']))
{
	foreach (range('A', 'Z') as $Name)   {
		print "<a href=\"frame.php?Name={$Name}\">{$Name}</a>";	
	}
}else{
$letter = substr($_GET['Name'], 0, 1);
    
	$sql_query = "SELECT s.S_Name, s.S_PLZ
                    FROM strassen s , City c
                    WHERE s.C_ID=c.C_ID 
		           AND s.S_Name LIKE '".mysql_real_escape_string($letter)."%'";

So nun zu meinem Problem. Ich möchte das quasi wie in der 1 Datei haben, dass wenn ich in der Selectbox einen Ort auswähle und dann einen Buchstaben anklicke mir nur alle Strassen ausgegeben werden die zu dem jeweiligen Ort gehören.
Ich hab schon überlegt ob man vielleicht der selectbox ein onclick mit einer id übergibt und diese id dann den Buchstaben und dann in dem $sql die id mit der id des ortes vergleicht.
Aber irgendwie bin ich mir noch nicht sicher ob und wie man das machen könnte, vielleicht hat ja jemand von euch noch eine Idee wie man das realisieren könnte?
 
Hi,

mal sehen, ob ich dein Problem richtig verstanden habe.

Du möchtest den gedrückten Buchstaben gemeinsam mit den anderen Formulardaten in einem Script auswerten können. Dazu könntest du die Buchstaben als Submit-Buttons realisieren, die mittels CSS wie Links formatiert werden. Im Auswertungsscript wertest du aus, welcher Button gedrückt wurde.

Code:
foreach (range('A', 'Z') as $Name)   {
  echo("<input type=\"submit\" class=\"link-btn\" name=\"Name\" value=\"".$Name."\" />");
}
CSS:
Code:
.link-btn{ background: none;
           border: none;
           text-decoration: underline;
           cursor: pointer;
           color: #00e;
           margin: 0;
           padding: 0;}
Vielleicht hilft dir das weiter.

Ciao
Quaese
 
Quaese Hi, mal sehen, ob ich dein Problem richtig verstanden habe.
Du möchtest den gedrückten Buchstaben gemeinsam mit den anderen Formulardaten in einem Script auswerten können. Dazu könntest du die Buchstaben als Submit-Buttons realisieren, die mittels CSS wie Links formatiert werden. Im Auswertungsscript wertest du aus, welcher Button gedrückt wurde.

Hi ich hatte das ausprobiert und das hat auch super geklappt, bis mir heute ein fehler aufgefallen ist.
Und zwar sende ich ja nun beim drücken eines Buchstabens einmal den Wert des Buchstaben und den Wert von der Selectbox(die ID vom Ort meine ich damit) mit. Mein Problem was mir nun aufgefallen ist, wenn ich in dem textfeld eine Straße eingebe und in der selectbox eine Stadt auswähle und auf den submit button klicke gibt er mir ja ein Ergebniss aus. Wenn ich nun aber nachdem das Ergebniss ausgegeben wurde noch auf einen Buchstaben klicke um mir ein anderes Ergebniss anzeigen zu lassen reagieren diese Submit Buttons nicht mehr. Ich gehe davon aus das es daran liegt weil sie ja auch mit abgesendet wurde. Gibt es vielleicht eine möglichkeit diese zu refreshen. Oder das wenn ich sie gar nicht benutze (anklicke) die daten nicht mit abgeschickt werden ?
 
Hi ich hab folgenden Code:

PHP:
$sql = "SELECT C_ID,Ort FROM City"; 
$row_sel = mysql_query($sql) or die(mysql_error());  

echo '<form action="'.$_SERVER['SCRIPT_NAME'].'" method="GET">
Stadt: <select name="staedte" size="1" class="stadt"  >';
        while ($select=mysql_fetch_array($row_sel)){
					
        echo '<option value="'.$select['C_ID'].'">'.$select['Ort'].' </option>';
		
        } 
echo '</select>
</div>
<br>
<br>
Straße: <input type="text" name="strassen" class="straßenname" />
<input type="submit" name ="submit" value="suchen" >
<br>
<br>
';

Und einen Link
PHP:
foreach (range('A', 'M') as $Name)   {
	print "<a href='frame.php?Name={$Name}'>{$Name}</a>";}

Ich möchte nun gerne den value Wert vom option Tag dem Link mit anhängen, das er wenn man drauf klickt mit übergeben wird. Hat jemand eine Idee wie man das machen könnte ?
 

Neue Beiträge

Zurück