Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-01-2012, 09:10   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2011
Beiträge: 7
Combobox bei Veränderung neu befüllen (Mysql)

Hallo liebe Community,

ich habe ein Problem!

Ich habe 2 Comboboxen, eine ist für Produktkataloge, eine für Produktkategorien.

Ein Katalog kann aus mehreren Kategorien bestehen, eine Kategorie kann in mehreren Katalogen vorkommen.

Wenn ich das Programm starte, möchte ich die Comboboxen anzeigen, wobei in jeder sämtliche Kataloge, bzw. Produkte angezeigt werden.

Wenn ich nun einen Katalog in der Combobox auswähle, möchte ich, dass in der zweiten Combobox nur mehr jene Kategorien angezeigt werden, die auch in diesem Katalog enthalten sind.
Das ganze soll auch umgekehrt funktionieren (Kategorie auswählen --> jene Kataloge werden angezeigt, in der diese Kategorie vorhanden ist).

Dazu habe ich folgende PHP-Methode um die Daten aus der Datenbank zu holen:

(Methode für die Kategorie-Combobox)
Code:
public function getAllKategorie($flag, $katalogID) {
		if($flag == 1) {
			$stmt = mysqli_prepare($this->connection, 
				"select kategorie.Bezeichnung from katalog, kategorie, kategorie_katalog 
 * *			where kategorie_katalog.katalogid = katalog.id and
 * *			kategorie_katalog.kategorieid = kategorie.id and
 * *			katalog.id=?;");		
			$this->throwExceptionOnError();
			mysqli_stmt_bind_param($stmt, 'i', $katalogID);
			$this->throwExceptionOnError();
		}
		
		if ($flag == 0) {
		$stmt = mysqli_prepare($this->connection, 
			"SELECT * FROM $this->tablename");		
		$this->throwExceptionOnError();
		}
		
		mysqli_stmt_execute($stmt);
		$this->throwExceptionOnError();
		
		$rows = array();
		
		mysqli_stmt_bind_result($stmt, $row->id, $row->Bezeichnung);
		
	    while (mysqli_stmt_fetch($stmt)) {
	      $rows[] = $row;
	      $row = new stdClass();
	      mysqli_stmt_bind_result($stmt, $row->id, $row->Bezeichnung);
	    }
		
		mysqli_stmt_free_result($stmt);
	    mysqli_close($this->connection);
	
	    return $rows;
	}
Mein Problem ist nun, dass ich bisweilen nur geschafft habe, in beiden Comboboxen sämtliche Datensätze anzuzeigen, wenn ich einen Datensatz in der Katalog-Combobox auswähle, ändert sich an den in der Kategorie-Combobox angezeigten Datensätzen nichts.

Die PHP-Methode wird mit einem Flag und einer KatalogID aufgerufen, das Flag ist dazu da um beim ersten Durchlauf (mit flag=0) alle Datensätze anzuzeigen, wenn ein Datensatz in der Katalog-Combobox ausgewählt wird, wird das Flag auf 1 gesetzt.

Ich denke, dass ich daran scheitere, dass die Combobox nicht neu befüllt wird, wenn ich in der anderen einen Datensatz auswähle.

Die Comboboxen befülle ich mittels dem neuen Data Centric Development (getAllKategorie per Drag&Drop der Combobox zuweisen).
Dabei wird für jede der Comboboxen eine AsyncListView erstellt mit:
Code:
<s:ComboBox x="103" y="43" id="comboBox" creationComplete="comboBox_creationCompleteHandler(event)" labelField="Bezeichnung" change="comboBox_changeHandler(event)">
		<s:AsyncListView list="{getAllKategorieResult.lastResult}"/>
	</s:ComboBox>
und dann im creationCompleteHandler:
Code:
protected function comboBox_creationCompleteHandler(event:FlexEvent):void
			{
				getAllKatalogResult.token = katalogService1.getAllKatalog();
			}
Und wie man auf diese AsyncListView ein update() macht, habe ich leider nicht gefunden.

Wenn man das mit einem anderen Weg leichter befüllen kann, dann bitte nur her damit. Ich bin noch relativ neu in Flex 4...

Danke im Voraus,
mit freundlichen Grüßen
Klaus
hacmac001 ist offline   Mit Zitat antworten
Alt 27-01-2012, 12:01   #2 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 620
Hallo Klaus.

Ich habe das ganze über eine ArrayCollection gelöst. In dieser befinden sich die "Produkte" mit den verschiedenen Werten. In deinem Fall könnte man dort die Kataloge ablegen.

Wenn sich eine Auswahl ändert wird dann nur in dieser AC gesucht und die Daten entsprechend gefiltert in der anderen ComboBox ausgegeben.

Da du die Daten am Anfang schon alle geladen hast (?) würde sich diese Methode eher anbieten als ständig Daten nachzuladen.

MfG Monk
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
combobox, flex 4, mysql, php, update

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
comboBox befüllen uncle.sam ActionScript 3 1 28-12-2010 11:01
MySQL => ComboBox TiffTiff Komponenten und SmartClips 5 28-12-2004 10:21
combobox mit php aus mysql füllen zuluman ActionScript 1 4 23-09-2003 09:49
Combobox /php/mysql virus449 Komponenten und SmartClips 1 04-03-2003 20:15
combobox aus MYSQL DB füttern böhseronkel Flash MX 0 10-01-2003 12:54


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele