ColdFusion:MySQL Tabelle erneut laden mit neuer Auswahl

wernerstumpferl

Grünschnabel
Hallo Leute,

ich habe zwar einige Einträge zu diesem Thema im Forum gefunden, allerdings leider alles PHP-basierend. Da ich in Coldfusion programmiere, kann ich damit aber nichts anfangen. Deshalb die Frage, ob mir jemand ein Beispiel für Coldfusion geben kann.
In einem Formular fülle ich eine Liste mit einer vorab gewählten Datenbankabfrage
HTML:
<cfquery name="s1" datasource="artikel">
	SELECT * FROM server_dvd where bauform ='HH' and farbe='black' and interface='IDE' order by herstellername,interface ASC
</cfquery>
<cfquery name="s2" datasource="artikel">
	SELECT * FROM server_backup where farbe='black' order by herstellername,interface ASC
</cfquery>
<select name="cd" size="1" id="cd" onChange="selectcd(this.selectedIndex);">
<cfoutput query="s1">
<option value="#s1.artikelnummer#&FORMFAKTOR:#s1.formfaktor#&BAUFORM:#s1.bauform#&INTERFACE:#s1.interface#&">#s1.herstellername# - #s1.artikeltext# (#s1.herstellernummer#)</option>
</cfoutput>
</select>
<select name="backup" size="1" id="backup" >
<cfoutput query="s2">
<option value="#s2.artikelnummer#&FORMFAKTOR:#s2.formfaktor#&BAUFORM:#s2.bauform#&INTERFACE:#s2.interface#&">#s2.herstellername# - #s2.artikeltext# (#s2.herstellernummer#)</option>
</cfoutput>
</select>
Nach "onChange" wird ein Script aufgerufen, das nun prüft, ob ob für ein anderes Gerät noch ein Einbauplatz vorhanden ist.
Code:
function selectcd(x){
var treffer1 = document.form1.cd.options[x].value.match("FORMFAKTOR:5,25");
var treffer2 = document.form1.cd.options[x].value.match("BAUFORM:HH");
if ((treffer1 == "FORMFAKTOR:5,25") && (treffer2 == "BAUFORM:HH")) {
	document.form1.frei525.value=document.form1.frei525.value-1;
}
}
Abhängig vom Ergebnis in "frei525" soll dann z.B. für ein Backuplaufwerk die Datenbanktabelle neu geladen werden, welche wie oben auch bereits einmal vorbelegt wurde, nun aber mit einer anderen Selektion, z.B. wenn "frei525" = 1 ist, dann nur noch Backuplaufwerke mit 1 Slot Bauhöhe. In diesem Falle müsste dann die SQL-Abrage so aussehen
HTML:
<cfquery name="s2" datasource="artikel">
	SELECT * FROM server_backup where farbe='black' and bauform='HH' order by herstellername,interface ASC
</cfquery>
Nur wie bringe ich das dem Script bei ?
 
Hurra, ich habe es selbst geschafft.
Hier für alle die es wissen wollen:

HTML:
<script type="text/javascript">
<!--

function selectcd(x){
if (document.form1.frei525.value == 1) {
<cfquery name="newcd" datasource="artikel">
     SELECT * FROM server_dvd where bauform ='HH' and farbe='black' and interface='IDE' order by herstellername,interface ASC
</cfquery>
var b=0;
var c=document.form1.cd.options[x].text;
<cfloop query="newcd"> 
	b=b+1;
	document.form1.cd.options[b] = new Option("<cfoutput>#newcd.herstellername#</cfoutput>","<cfoutput>#newcd.artikelnummer</cfoutput>");
if (c == document.form1.cd.options[b].text){
	document.form1.cd.options[b].selected = true;
}
</cfloop>
}
 

Neue Beiträge

Zurück