Még 1 JS kérdés:
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:
■ 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õ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);
}
Re: Még 1 JS kérdés:
mmint a kolléga gépén a te progid megy rendesen, vagy egy általa irt script?
nos, a smarty képes cachelni az adatokat, igy lehet, hogy ezért kapod vissza azt az adatot, amit nem kéne
állitsd be, hogy ne lehessen cachelni az oldalt (smartyban és headerben is), és próbáld meg úgy. ha igy se megy, akkor más bibi van
Ene
Re: Még 1 JS kérdés:
Belülről viszont nem. Megnézem ezt a Smarty kérdést, a headeremben benne vannak a
Re: Még 1 JS kérdés:
Tudod, szerintem a probléma ott lehet, hogy amikor megnyomod a BACK gombot és a formodat visszakapod (valódi page-reload nélkül) a beírt értékekkel.
Tehát benne van a headerben a no-cache benne van a smartyban a caching-> false;. Kicsit utána néztem a dolognak és félek: nem nagyon lehet befolyásolni a IE BACK FORWARD gombjainak működéséhez rendelt oldalmegjelenítéseket.
Re: Még 1 JS kérdés:
Formát is kipróbálhatsz. Mindezt a head elemek közé írtad, ugye? Még a header() utasítással is kipróbálhatod átadni ugyanezeket a paramétereket. Nekem működnek.
Re: Még 1 JS kérdés:
viszont ha nem engeded cachelni, kénytelen újból lekérni az oldalt, amikor back-et nyom
Re: Még 1 JS kérdés: