ugrás a tartalomhoz

Archívum - Okt 6, 2003 - Fórum téma

Még 1 JS kérdés:

quasimidi · 2003. Okt. 6. (H), 09.49
Előző problémámat sikeresen megoldottam, csodás dolog az internet és csodás hogy emberek osztják a tudást mindenféle ellenszolgáltatás nélkül.
Ma reggel a következő dologgal néztem szembe:
Van egy lekérdező formom (nevezzük keresésnek), ahol van 3 dropdown mező. ebből az első 2 smarty generált, a harmadik változik az első kettőből kiváalsztott elemnek megfelelően.
Azt tapasztaltam, hogy IE 6 alatt, amikor elküldöm a formot majd megnyomom a "BACK" gombot, nem resetelődik le a smarty által generált option list, hanem megőrzi az előzőleg elküldött option-t. Természetesen a javascriptel generált dropdown sem töltődik fel, bár számomra ez kicsit ködös hogy miért is van ez?
Ja és a legjobb hogy egy másik fejlesztő kollágánál pedig teljesen jól működik, aka. minden "back"-nél leresetelődik a form.
Gondoltam arra hogy a <body> tagba belerakok egy onLoad() meghívást, ami beállítja a 2 dropdown selectedIndexét 0-ra, de ez nem vezetett a várt eredményre amikor vki megnoymja a browser "back" gombját.
Van vmi tippetek?

Némi kód php-ben, ami előáállítja nekem a javascriptet:
 if ($formType == "query") {

	
	$activityresult[] = $db->query($db->select($activity_sql0)); // F&otilde;csoportok
	$activityresult[] = $db->query($db->select($activity_sql1)); // Alvállakozók
	$activityresult[] = $db->query($db->select($activity_sql2)); // Tevékenységek
	
	$form->smarty_addsqlselect("activityOptions1","activityValues1","name","activity_id",$activityresult[0]);
	$form->smarty_addsqlselect("activityOptions0","activityValues0","name","activity_id",$activityresult[1]);
	$form->smarty_addselect("categoryOptions","categoryValues",$categoryFieldValues);
		
	############ Build the javascript ###############
	$jscript .= "<SCRIPT lang=\"Javascript\">\n";
	
	$jscript .= "\tvar form = document.organization_query;\n";
	$jscript .= "\tvar namearray = new Array();\n";
	$jscript .= "\tvar activityarray = new Array();\n";
	$jscript .= "\tvar subactarray = new Array();\n";
	$i = 0;
	
	while (!$activityresult[2]->EOF) {
	
	    $jscript .= "\tnamearray[$i] = '".$activityresult[2]->fields["name"]."';\n";
	    $jscript .= "\tactivityarray[$i] = ".$activityresult[2]->fields["activity_id"].";\n";
	    $jscript .= "\tsubactarray[$i] = ".$activityresult[2]->fields["sub_activity_no"].";\n";
	    $i++;
	    $activityresult[2]->MoveNext();
	}
	
	$jscript .= "\tfunction changecat(option) {\n";
	$jscript .= "emptyList();";
	$jscript .= "\t\t for (var i=0; i<namearray.length;i++) {  \n";
	$jscript .= "if (activityarray[i] == option) {\n";
	$jscript .= "form.sub_activity_no.options[form.sub_activity_no.length] = new Option(namearray[i],subactarray[i]);\n";
	$jscript .= "form.sub_activity_no.selectedIndex=0;";
	$jscript .= "}\n";
	$jscript .= "}\n";
	$jscript .= "}\n";
	$jscript .= "function emptyList() { while ( form.sub_activity_no.options.length ) form.sub_activity_no.options[0] = null;}";	
	##############################################
	$jscript .= "</script>";
	$smarty->assign("jscript",$jscript);	
	$smarty->assign("org_type",$org_type);
	
    }