Buona settimana (speriamo), posto la gestione di alcuni degli altri bottoni.
codice:
<SCRIPT LANGUAGE="JavaScript">
function addobjec()
{
window.open('','nome','width=340,height=195,left=122,top=287,location=no')
document.modulo.target="nome";
document.modulo.action="addobject.php";
document.modulo.submit();
}
</script>
<SCRIPT LANGUAGE="JavaScript">
function endmirrorin()
{
document.modulo.endmirroring.value=1;
document.modulo.action="vam407.php";
document.modulo.submit();
}
</script>
<SCRIPT LANGUAGE="JavaScript">
function remov()
{
window.open('','nome','width=345,height=180,left=122,top=287,location=no')
document.modulo.target="nome";
document.modulo.action="remove.php";
document.modulo.submit();
}
</script>
........
<input type="button" value="Change " onClick="javascript:change()">
<input type="button" value="Send object " onClick="javascript:sendob()">
<input type="button" value="End mirroring " onClick="javascript:endmirrorin()">
<input type="button" value="Add object " onClick="javascript:addobjec()">
e mettiamo che abbia gia' aggiunto un oggetto e che chiami la pagina per cancellare l'oggetto. Posto la parte di codice che viene eseguito dalla pagina che cancella l'oggetto
e questa call al programma funziona, nel senso che l'oggetto viene cancellato
codice:
<html>
<?php
include("connection.inc");
session_start();
$remove= $_POST['remove'];
if ($remove=="1") {
$LNKLIB = $_POST["LNKLIB"];
$lib = $_POST["costumerMRJID"];
$obj = $_POST["costumerMRLIB"];
$typ = $_POST["costumerMRMBR"];
$scelta = $_POST['scelta'];
$typ = trim($typ);
if ($typ=='*PF'){
$typ='*FILE';
}
if ($typ=='*LF'){
$typ='*FILE';
}
$_SESSION['lnklib'] = $LNKLIB;
$_SESSION['lib'] = $lib;
$_SESSION['obj'] = $obj;
$_SESSION['typ'] = $typ;
$_SESSION['scelta'] = $scelta;
/* Errore durante la connessione al server */
if (!$conn) die("
1 connessione".i5_errno()." msg=".i5_errormsg());
/* Definizione parametri da passare al programma */
$description = array(
array("Name"=>"lnklib", "IO"=>I5_IN, "Type"=>I5_TYPE_CHAR, "Length"=>"10"),
array("Name"=>"lib", "IO"=>I5_IN, "Type"=>I5_TYPE_CHAR, "Length"=>"10"),
array("Name"=>"obj", "IO"=>I5_IN, "Type"=>I5_TYPE_CHAR, "Length"=>"10"),
array("Name"=>"typ", "IO"=>I5_IN, "Type"=>I5_TYPE_CHAR, "Length"=>"10"),
array("Name"=>"scelta", "IO"=>I5_IN, "Type"=>I5_TYPE_CHAR, "Length"=>"1"),
);
/* Apertura programma con la definizione dei parametri */
$pgm = i5_program_prepare("VAM400/HSTL03W" , $description);
/* Errore apertura programma */
if (!$pgm) die("
2 error. =".i5_errno()." msg=".i5_errormsg());
/* Impostazione parametri di input con le variabili passate dal chiamante con il metodo POST */
$parmIn = array(
"LNKLIB"=>$_SESSION["lnklib"],
"LIB"=>$_SESSION["lib"],
"OBJ"=>$_SESSION["obj"],
"TYP"=>$_SESSION["typ"],
"SCELTA"=>$_SESSION["scelta"],
);
/* Richiamo programma */
$ret = i5_program_call($pgm, $parmIn);
/* Errore richiamo programma */
if (!$ret) die("
call error. Error number=".i5_errno()." msg=".i5_errormsg());
/* Chiusura programma */
i5_program_close($pgm);
print '<script>window.opener.document.modulo.target=(_self);</script>';
print '<script>window.opener.location.reload(true);self.close();</script>';
}
Il problema e' in nella refresh sopra, nel senso che quando la pagina madre viene
ricaricaricata riesegue la funzione addobject
Ora voi sapete dirmi se e' normale che il refresh riesegue le azioni che sono state eseguite
l'ultima volta, quindi il problema e' normale o e' un errore del mio codice?
Ps. E' importante per me capire come gestire questa situazione.
Il fatto e' che se metto un bottone che ricarica la pagina madre, dopo questa azione
funzionerebbe il refresh perche' non riesegue nessuna azione, solo che non e' pensabile
che un utente prema dopo ogni azione il tasto "refresh", sopratutto perche' questa
pagina fa una select su un file che a seconda dell'azienda potrebbe avere migliaia di record.
Ciao