ugrás a tartalomhoz

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);
	
    }
 
1

Re: Még 1 JS kérdés:

ene · 2003. Okt. 6. (H), 11.30
Hali!

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
2

Re: Még 1 JS kérdés:

quasimidi · 2003. Okt. 6. (H), 12.02
Hmmm, ene lehet hogy igazad van, mert ez egy intrantes progy, a kolléga pedig a FW-n kívűl van. Mivel van egy jóképességű FW-nk, lehet hogy az piszkál be és kívűlről ezért működik rendesen.
Belülről viszont nem. Megnézem ezt a Smarty kérdést, a headeremben benne vannak a

<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />
bejegyzések.
3

Re: Még 1 JS kérdés:

quasimidi · 2003. Okt. 6. (H), 12.07
Nem a smarty-cache volt a probléma ( $smarty->caching = false; ).
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.
4

Re: Még 1 JS kérdés:

Bártházi András · 2003. Okt. 6. (H), 16.58
Esetleg még egy
<?
<meta http-equiv="Expire" content="-1" />
?>


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.
5

Re: Még 1 JS kérdés:

ene · 2003. Okt. 7. (K), 10.17
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.


viszont ha nem engeded cachelni, kénytelen újból lekérni az oldalt, amikor back-et nyom
6

Re: Még 1 JS kérdés:

quasimidi · 2003. Okt. 7. (K), 10.47
Igen Ene igazad lehet. a következő van minden oldal headerjében, a <head></head> tagok között:
 
  <meta http-equiv="Accept-Encoding" content="gzip" />
  <meta http-equiv="Content-Type" Content="text/html" Charset="windows-1250" />
  <meta http-equiv="Pragma" content="no-cache" />
  <meta http-equiv="Cache-Control" content="no-cache" />
  <meta http-equiv="Expire" content="-1" >
Plusz még bebiggysztettem az php fileba:

$smarty->caching = false;
$smarty->compile_check = true;
Sajna ez sem vezetett eredményre. Nincs ötletem, marad az hogy elolvasom az RFC-t a HTTP headerekre vonatkozólag. Addig is itt egy kis kód, amit lehet böngészni, hátha megláttok vmit,a min elsiklott a figyelmem.

<html>
<head>
  <title> Partnercégek lekérdezése</title>
  <meta http-equiv="Accept-Encoding" content="gzip" />
  <meta http-equiv="Content-Type" Content="text/html" Charset="windows-1250" />
  <meta http-equiv="company" content="Go-By Kft. 2003.08.14" lang="hu" />
  <meta http-equiv="Pragma" content="no-cache" />
  <meta http-equiv="Cache-Control" content="no-cache" />
  <meta http-equiv="Expire" content="-1" >
  <meta name="author" content="Robert Simon" />
  <link rel="stylesheet" type="text/css" href="/css/style.css" />
</head>
<SCRIPT language="JavaScript" src="/js/date.js" type="text/javascript" /></SCRIPT>
<SCRIPT language="JavaScript" src="/js/check.js" type="text/javascript" /></SCRIPT>
<SCRIPT language="JavaScript" src="/js/mmenu.js" type="text/javascript" /></SCRIPT>
<!-- End Page header -->
<body topmargin="0" leftmargin="0" style="background-color: #408BBF">
<!-- Start Main Table -->
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">
<!-- Start Display Header if login successful -->
<tr height="80">
    <td align="center">
        <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="741" height="80">
            <tr>
                <td width="16" height="80" rowspan="2"> </td>
                <td width="695" height="60" background="/images/head_shadow_s_2.jpg" valign="bottom">
                    <SCRIPT language="JavaScript">PlaceMenu("mainmenu");</SCRIPT>
                </td>
                <td width="23" height="80" rowspan="2"> </td>
            </tr>
            <tr>
                <td width="695" height="26"><img border="0" src="/images/head_foot_s.jpg" width="700" height="26" /></td>
            </tr>
        </table>
    </td>
</tr>
<!-- End Display Header if login successful -->
 <tr>
    <td colspan="2" valign="top" align="center" valign="middle">
     <table border="0" cellpadding="0" cellspacing="0">
     <!-- Start Main Page --><!-- Page start -->
<div align="center">
   <form action="?" method="POST" name="organization_query">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse">
    <tr>
      <td width="17" height="15" class="f1"></td>
      <td height="15" class="f2" colspan="2"></td>
      <td width="51" height="15" class="f3"></td>
    </tr>
    <tr>
      <td width="17" height="32" class="f4"> </td>
      <td height="32" bgcolor="#8DC0E4" class="maintext-head" width="43">
      <p align="center">
      <img border="0" src="/images/i_dload.gif" width="30" height="30"></td>
      <td height="32" bgcolor="#8DC0E4" class="maintext-head" width="363"><font color="#FFFFFF"><b> Partnercégek lekérdezése</b></font></td>
      <td width="51" height="32" class="f6"> </td>
    </tr>
    <tr>
      <td width="17" height="19" class="f7"> </td>
      <td height="19" class="f8" colspan="2"> </td>
      <td width="51" height="19" class="f9"> </td>
    </tr>
    <tr>
      <td width="17" height="40" class="f10"> </td>
      <td height="40" bgcolor="#8DC0E4" valign="top" colspan="2">
            <TABLE class="maintable" cellSpacing=0 cellPadding=0 border=0 height="30" style="border-collapse: collapse; border-width: 0" bordercolor="#111111">
              <TR class="maintext">
                <TD colSpan=2 valign="top" style="background-color: #8DC0E4" height="1">
                <img border="0" src="/images/spacer.gif" width="1" height="1"></TD></TR>
              <TR>
                <TD align="right" height="21" bgcolor="#8DC0E4" class="maintext"> Név: </TD>
                <TD height="21" bgcolor="#8DC0E4"><INPUT maxLength="70" size="50" name="name"></TD>
	    </TR>
              <TR>
                <TD colSpan=2 height="1" bgcolor="#8DC0E4">
                <img border="0" src="/images/spacer.gif" width="1" height="5"></TD>
	    </TR>
              <TR>
                <TD align="right" height="21" bgcolor="#8DC0E4" class="maintext"> Kód: </TD>
                <TD height="21" bgcolor="#8DC0E4">
                <INPUT maxLength="70" size="50" name="organization_code"></TD>
	    </TR>
	    	    <!-- Begin dropdown Javascript -->
	    <SCRIPT lang="Javascript">
	var form = document.organization_query;
	var namearray = new Array();
	var activityarray = new Array();
	var subactarray = new Array();
function resetfield() { 
 form.activity_id0.selectedIndex = 0; 
form.activity_id1.selectedIndex = 0; 
 return true;
}
	namearray[0] = 'Acélszegecskivitel';
	activityarray[0] = 3;
	subactarray[0] = 1;
	namearray[1] = 'Aszfalt';
	activityarray[1] = 6;
	subactarray[1] = 1;
	namearray[2] = 'Aszfalt-egyengetés';
	activityarray[2] = 5;
	subactarray[2] = 6;
	namearray[3] = 'Aszfalt-terítés';
	activityarray[3] = 5;
	subactarray[3] = 5;
	namearray[4] = 'Beton';
	activityarray[4] = 6;
	subactarray[4] = 2;
	namearray[5] = 'Durvabeton';
	activityarray[5] = 2;
	subactarray[5] = 2;
	namearray[6] = 'Favágás';
	activityarray[6] = 5;
	subactarray[6] = 7;
	namearray[7] = 'Finombeton';
	activityarray[7] = 2;
	subactarray[7] = 1;
	namearray[8] = 'Földmű';
	activityarray[8] = 5;
	subactarray[8] = 1;
	namearray[9] = 'Kőtörés';
	activityarray[9] = 5;
	subactarray[9] = 3;
	namearray[10] = 'Sóder';
	activityarray[10] = 4;
	subactarray[10] = 3;
	namearray[11] = 'Útépítés';
	activityarray[11] = 5;
	subactarray[11] = 2;
	namearray[12] = 'Zúzalék-kotrás';
	activityarray[12] = 5;
	subactarray[12] = 4;
	function changecat(option) {
emptyList();		 for (var i=0; i<namearray.length;i++) {  
if (activityarray[i] == option) {
form.sub_activity_no.options[form.sub_activity_no.length] = new Option(namearray[i],subactarray[i]);
form.sub_activity_no.selectedIndex=0;}
}
}
function emptyList() { while ( form.sub_activity_no.options.length ) form.sub_activity_no.options[0] = null;}</script>
	    <!-- End dropdown Javascript -->
		<input type="hidden" name="partner" value="1">
              <TR>
                <TD colSpan=2 height="1" bgcolor="#8DC0E4">
                <img border="0" src="/images/spacer.gif" width="1" height="5" onLoad="resetfield();" ></TD>
	     </TR>
	     <tr>
		 <td align="right" height="21" class="maintext"> Irányítószám: </td>
		 <td align="left" height="21" class="maintext">
		 <input type="text" name="post_nr" size="5" maxlenght="5"> Település: 
		 <input type="text" name="town" size="26" maxlenght="30">
		 </td>
	     </tr>
	     <TR>
                <TD colSpan=2 height="1" bgcolor="#8DC0E4">
                <img border="0" src="/images/spacer.gif" width="1" height="5"></TD>
	     </TR>
	    <tr>
		 <td align="right" height="21" class="maintext"> Min.főcsoport: </td>
		 <td align="left" height="21" class="maintext">
		 <select name="activity_id1" size="1" onChange="changecat(this.options.value)" style="width=200;">
		 <option label="[Kérem válasszon!]" value="">[Kérem válasszon!]</option>
<option label="Beszállító" value="4">Beszállító</option>
<option label="Betonüzem" value="2">Betonüzem</option>
<option label="Laboratórium" value="6">Laboratórium</option>

		 </select>
		</td>
	     </tr>
	     <tr>
                <td colSpan=2 height="1" bgcolor="#8DC0E4">
                <img border="0" src="/images/spacer.gif" width="1" height="5"></td>
	     </tr>
	    <tr>
		 <td align="right" height="21" class="maintext"> Alvállalkozás: </td>
		 <td align="left" height="21" class="maintext">
		<select name="activity_id0" size="1" onChange="changecat(this.options.value)" style="width=200;">
		<option label="[Kérem válasszon!]" value="">[Kérem válasszon!]</option>
<option label="Betonacél-szerkezet" value="3">Betonacél-szerkezet</option>
<option label="Hídépítés" value="16">Hídépítés</option>
<option label="Útépítés, Földmű" value="5">Útépítés, Földmű</option>
<option label="Zabpehely" value="18">Zabpehely</option>

		 </select>
		</td>
	     </tr>
              <TR>
                <TD colSpan=2 height="1" bgcolor="#8DC0E4">
                <img border="0" src="/images/spacer.gif" width="1" height="5"></TD>
	     </TR>
	     <tr>
		 <td align="right" height="21" class="maintext"> Tevékenység: </td>
		 <td align="left" height="21" class="maintext">
		<select name="sub_activity_no" size="1" style="width=200;">
		 <option selected>[Kérem válasszon!]</option>
		 </select>
		 </td>
	     </tr>
	     <tr>
                <td colSpan=2 height="1" bgcolor="#8DC0E4">
                <img border="0" src="/images/spacer.gif" width="1" height="5"></td>
	     </tr>	     
	     <tr>
		 <td align="right" height="21" class="maintext"> Értékelés: </td>
		 <td align="left" height="21" class="maintext">
		 <select name="category" size="1">
		      <option label="[Kérem válasszon!]" value="">[Kérem válasszon!]</option>
<option label="A" value="A">A</option>
<option label="B" value="B">B</option>
<option label="T" value="T">T</option>

		 </select>
		</td>
	     </tr>
	                   <TR>
                <TD colSpan=2 bgcolor="#8DC0E4">
                <img border="0" src="/images/spacer.gif" width="1" height="5"></TD>
	     </TR>	     
              <TR>
                <TD align="middle" colSpan=2 height=30 bgcolor="#8DC0E4"><input type="submit" name="query" value="Lekérdezés indítása"  class="button">  <input type="submit" name="cancel" value="Mégse" 1 onclick="history.back(); return false;" class="button"> </TD>
	    </TR>
	</TABLE>
      </td>
      <td width="51" height="40" class="f12"> </td>
    </tr>
    <tr>
      <td width="17" height="24" class="f13"> </td>
      <td height="24" class="f14" colspan="2"> </td>
      <td width="51" height="24" class="f15"> </td>
    </tr>
        <input type="hidden" name="action" value="query">
        <input type="hidden" name="org_type" value="2">
    </form>
  </table>
  </center>
</div>
</td>
</tr>
</table>
<!-- End Main Table --> 
<!-- End Main Page -->
<body>
</html>