comboboxen +reload der seite..

hallo

Das mit der Variable ist mir bekannt, hatte dir da nur ein Beispiel gegeben.
ich zeig dir jetzt mal meine erste Combobox.
Und in die muss ich dein Script da einbauen?

Code:
<form id="frmRecherche" name="frmRecherche" method="POST" action="<?=$script?>">
<select name="cbxMark" id="cbxMark" onchange="NeuerEintrag();">
    <option value"*">Bitte auswaehlen</option>
	<? 
	// Alle Marken in die Combobox setzen die sich bereits in der Tabelle befinden 
	$combo=sprintf("SELECT `MARK` FROM Autos where 1=1");
	$rst = mysql_query($combo,$connect);
	while ($zeile=mysql_fetch_assoc($rst))  {
	if ($test!=$zeile['MARK']){
	 echo "<option>".$zeile['MARK']."  </option>";
	 $test = $zeile['MARK']; 
	 }
	}
 
Genau so ist es, das mußt Du bei jeder Combobox machen.

Wenn Das Formular abgeschickt wird bzw. neu geladen wird bekommt es ja die Werte jeder einzelnen CB. Damit dann auch in jeder dieser entsprechende Wert gleich ausgewählt ist, mußt Du es auch bei jeder CB so schreiben.

Würde nur immer mit ISSET prüfen ob die Variable übergeben wurde oder nicht.
 
Also das war die Combobox wo die Marke ausgewählt wurde.
öhm, wàre es nicht besser ich würde dir die Datei mal senden und du könntest dir das mal anschauen,
ich habe das Gefühl dass du nicht richtig verstehst was ich meine (liegt wohl an mir) :)
Siehe Anhang :)
 

Anhänge

  • recherche.txt
    6,1 KB · Aufrufe: 40
Hm,

ich bin gerade im Geschäft und kann das nicht so genau anschauen. Aber ich denke mal so stimmt es wohl.

Geändert bei CB für die Marke :

Code:
<select name="cbxMark" id="cbxMark" onClick="NeuerEintrag();">
<option value"*">Bitte auswaehlen</option>
<? 
// Alle Marken in die Combobox setzen die sich bereits in der Tabelle befinden 
$combo=sprintf("SELECT `MARK` FROM Autos where 1=1");
$rst = mysql_query($combo,$connect);
while ($zeile=mysql_fetch_assoc($rst))  {
	if ($test!=$zeile['MARK']){
		if(isset($_POST['cbxMark']) AND $_POST['cbxMark'] == $zeile['Mark']) {
			echo "<option selected>".$zeile['MARK']."  </option>";
		} else echo "<option>".$zeile['MARK']."  </option>";
	 $test = $zeile['MARK']; 
	 }
}
?>
</select>

Geändert bei CB für Karroserie :

Code:
<select name="cbxKarosserie" id="cbxKarosserie" onClick="NeuerEintrag();">
<option value"*">Bitte auswaehlen</option>
<? 
if($Mark){ 
	$combo=sprintf("SELECT `KAROSSERIE` FROM Autos where MARK='".$Mark."'");
	$rst = mysql_query($combo,$connect);
	while ($zeile=mysql_fetch_assoc($rst))  {
		if ($test!=$zeile['KAROSSERIE']){
			if(isset($_POST['cbxKarosserie']) AND $_POST['cbxKarosserie'] == $zeile['Karosserie']) {
				echo "<option selected>".$zeile['KAROSSERIE']." </option>";
			} else echo "<option>".$zeile['KAROSSERIE']." </option>";
			$test = $zeile['KAROSSERIE']; 
	 	}
	}
?>	
</select>

Die Combos "Segment", "PS" und "Sprit" betrifft es ja nicht
 
Erstmal danke für die Hilfe. Aber ich glaube wir reden nochimmer aneinander vorbei.
Also das ist so.
Ich habe ein Tabelle mit den Automarken blabla..
1 Feld : Marke
1 Feld : Karosserie
In der ersten Combobox wähle ich die Marke aus.
In die 2te Combobox wird dann alle Karosseriearten geladen (aus dem feld Karosserie) die der ausgewählten Marke entsprechen die ich in CBX 1 ausgewählt habe.

Dabei bleibt aber der Eintrag in der CBX 1 konstant. Das heisst ich drücke Audi, dann werden alle karosserieaarten in die 2te CBX geladen, und der erste Eintrag bleibt stehen. Damit man andere Sachen auswählen kann.

So besser konnte ich es nicht erklären.
 
Zuletzt bearbeitet:
Sorry, das hab ich überlesen.

Dann mach bei der Karroserie aus
Code:
if($Mark){ 
	$combo=sprintf("SELECT `KAROSSERIE` FROM Autos where MARK='".$Mark."'");

einfach

Code:
if($_POST["cbxMark"]){ 
	$combo=sprintf("SELECT `KAROSSERIE` FROM Autos where MARK='".$_POST["cbxMark"]."'");

Dann wird die Abfrage für die Karroserie mit dem Markennamen ausgeführt.
 
Dann schau Dir das mit "<option selected>" nochmal genau an. Sobald bei einem Eintrag in einem Listenfeld selected angegeben ist, ist dieser Eintrag ausgewählt.

Ober schau mal nach der Zeile :

if(isset($_POST['cbxMark']) AND $_POST['cbxMark'] == $zeile['Mark'])

Ich hab bei $zeile['Mark'] das Wort Mark nicht großgeschrieben !!
 

Neue Beiträge

Zurück