comportamento anomalo con IE 9 e 10

  • Creatore Discussione Creatore Discussione ans66
  • Data di inizio Data di inizio
non credo proprio che si possa trasferire quel codice in contarecord, perché è proprio il codice che dialoga con contarecord,

contarecord è un oggetto che sta sul server, riceve le richieste da
PHP:
xmlhttp.open("POST","elementscount.php?timestamp=" + new Date().getTime(),true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send
e restituisce la risposta a
PHP:
		var xmlhttp=catchthebrowser();

		xmlhttp.onreadystatechange=function()
		{
			if (xmlhttp.readyState==4 && xmlhttp.status==200)
			{
				data = xmlhttp.responseText;
// alert(data);
				$("#result").html(data);
			}
		}

la cosa che si puo fare è tentare a creare una funzione che vada bene per tutti,
spero di aver inteso bene la tua domanda

è strano che vada oltre 1 o 2 tentativi ( i>10) vuol dire che persiste la condizione -1 ovvero non riceve risposta dal server ....
verifica nel log di php che non ci siano errori

ciao
Marino
 
http://www.cebora.it/ruote/pp1/cercaruota.php
sto guardando questo link, ma non vedo alert ...
anche la tabella mi sembra venga generata rapidamente ...
Cattura.PNG
 
Ultima modifica:
Ciao Marino,

Stavo facendo delle prove su IE 11 Windows 8 che per me è basilare. Ho messo il metodo 2 (versione con POST e alert). Solo domani potrò mettere la versione con GET perché con il Tablet faccio fatica a rinominare o cancellare i file e solo con Tablet ho la possibilità di connettermi al server
 
adesso è possibile vedere i log. Sto controllando con Windows 8 e IE 11 e vedo comparire gli alert di malfunzionamento. Nei log non vedo le select ma solo le option. Non dipende forse da questo l'errore? Non vedo più alert i>10.
 
Ciao Marino,

Mi spiego meglio. Ho inserito gli alert(data) nel metodo 2 e nelle finestre vedo tutte le option delle varie select Diametro, TipoSupporto, ecc. Ricordo che in uno dei primi messaggi con criric, quando mi ha consigliato di usare div o span (in tabella5.php) invece di select. Il motivo era che nelle funzioni ShowDiametro, ecc di Select.class.php dovevo passare non solo le option ma anche le select per evitare errori in IE. Solo adesso mi sono accorto che in effetti in tale funzioni passiamo solo option e non select.

vedi sotto:

Ciao, aggiungi l'apertura e la chiusura della select nella pagina chiamata.
Alcune versioni di IE restituiscono un errore javascript nel caso in cui l'html di risposta non sia sintatticamente corretto.
 
per cui:

Codice:
public function ShowDiametro($id, $id2, $lng)
  {
    $options = $this->OptionZero($lng);

    $sql = "SELECT * FROM diametro "; 
    $sql.= "WHERE applicazioneid =".$id." AND comeruotaid =".$id2; 

    $res = $this->connDatabase($sql); 

    $options='<select id="Diametro" name="Diametro">';

    while($row = mysql_fetch_array($res))
      $options.= '<option value="' . $row['diametrocercaid'] . '">' . $row['diametro'] . '</option>';
    
  }
$options.= '</select>';
return $options;
 
Ultima modifica:
te lo avevo scritto qualche post fa .... ma ti ho anche scritto che le option sono controllate, ovvero se ho interpretato bene il post di criric,se non ci sono errori nelle option, non dovrebbero nascere problemi ...

attiva debug di ie nelle proprietà->avanzate per vedere se ci sono errori, io non ne ho mai ricevuti

in più, per passare l'intero pacchetto con anche le select, forse va modificato un po' html, altrimenti com'è oggi, ti troveresti 2 volte le select o sbaglio io ?
 
Ultima modifica:
hai ragioni neanche io trovo errori. Ho controllato con f12 più volte. Guarda questa immagine di una prova fatta un paio di minuti fa con Windows 8 e IE 11:
errore select.jpg
 
sul server continuo ad avere il metodo 2 con alert(data)

select non caricate.jpg

davvero non capisco...
 
non riceve la risposta dal server,
PHP:
			success: function(data)
			{
// alert(data);
				$(form_tag).removeAttr("disabled");
				$(form_tag).html(data);
			},
			error: function() { alert("malfunzionamento "+form_tag); }
puoi inserire nei due script
PHP:
error_log($funzione." : ".$id." : ".$id2, 0);
error_log("record found : ".$data, 0);
e controllare nel log di php se ci sono i dati
 
nel file della classe, prima della classe inserisci
PHP:
<?php

#set error log file;
ini_set('log_errors', 1);
ini_set('error_log', 'z_cercaruota.log');

$phpself = basename (htmlspecialchars($_SERVER["PHP_SELF"]), ".php").".php";
class SelectList

PHP:
<?php
include_once 'select.class.php';
$opt = new SelectList();
error_log(" ", 0); error_log("***** ".$phpself, 0); <<<<<<<<<<<<<<<<<<<<<
if(empty($_POST)) $data = "0";
else
{
  extract($_POST, EXTR_OVERWRITE);
  $funzione = 'Show'.$funzione;
  error_log($funzione." : ".$id." : ".$id2." : ".$lng, 0);<<<<<<<<<<<<<<<<<<<<
  $data = $opt->{$funzione}($id, $id2, $lng);
}
echo $data;
?>

PHP:
<?php
include_once 'select.class.php';
$opt = new SelectList();
error_log(" ", 0); error_log("***** ".$phpself, 0); <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
if(empty($_POST)) $data = "0";
else
{
  extract($_POST, EXTR_OVERWRITE);
  $data = $opt->CalcolaNrRcAp($id, $id2, $dmt, $por, $seriesup, $lamier, $pavt, $Ruot, $suppt, $vol);
  error_log("record found : ".$data, 0);<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
}
echo $data;
?>
 
ho modificato così e ie 11 non fa problemi
PHP:
  public function ShowDiametro($id, $id2, $lng)
  {
    $options = '<select id="Diametro" name="Diametro">';
    $options.= $this->OptionZero($lng);

    $sql = "SELECT * FROM diametro "; 
    $sql.= "WHERE applicazioneid =".$id." AND comeruotaid =".$id2; 

//  $res = $this->connDatabase($sql); while($row = mysql_fetch_array($res))

    $db=new formDB(); foreach ($db->query($sql) as $row)
      $options.= '<option value="' . $row['diametrocercaid'] . '">' . $row['diametro'] . '</option>';
    $options.= '</select>';
    return $options;
  }
 
ti allego una pagina con il debug passo passo, in questo modo possiamo avere il codice ed il suo risultato
Vedi l'allegato Debug.pdf
come puoi vedere ho aggiunto i tag "<select ...> nella risposta dal server,
però quando vengono impostate le option ad apertura pagina e alla selezione dell'applicazione,
i suddetti tag non vengono inviati,
se volessimo seguire sempre il suggerimento di criric, dovremmo aggiungere i tag in tutte le variazioni delle option
concordi ?

se puoi verifica anche i nomi e id utilizzati nella pagina con gli stessi usati per le variazioni, sono coerenti ?

ciao
Marino
 
Ciao Marino,

Ho caricato il file TABELLA_GET.

Secondo me siamo sulla strada giusta perchè per la prima volta ho visto il contatore funzionare correttamente anche su IE 8 e Winodws XP. Le select però continuano ad essere non popolate anche se non ho visto nessun file log (errori) e quindi desumo non ci siano stati in effetti errori ma solo variabili vuote (??). Il file log dovrei trovarlo nella cartella di database3, corretto?

Non sono ancora in grado di provare questa versione su Windows 8 e IE 11 (lo farò a casa). Ti farò sapere appena possibile.

L'intuito mi dice che dobbiamo seguire il suggerimento di criric per avere definitivamente una compabilità con tutte le versioni anche se in effetti non sussistono errori ma solo un comportamento anomalo di IE. Quindi si, dovremmo aggiungere tutti i tag e qui avrò bisogno del tuo aiuto perchè io mi ero arenato durante la modifica di html (div, span, label e non select).

Quello che mi stai dando è un grandissimo aiuto...non ce l'avrei fatta da solo!
 
bene, qualche buona notizia, io credo che GET sia meno dipendente da S.O. e browser, forse mi sbaglio, ma siccome prende i parametri dalla "riga di comando" (scusa se chiamo così l'url) deve funzionare in modo più "sicuro"

dai uno sguardo al pdf, il file di log lo trovi nello stesso folder degli script, si chiama z_cercaruota.log, in ordine alfabetico è probabilmente l'ultimo

nel frattempo provo a mettere i tag <select> dove vengono aggiornate le option (i nomi sono un ... ***, tutti diversi ma tant'è)

provo a vedere anche mail
attendo notizie
ciao
Marino
 
in questo momento sono sul computer fisso perché sul mio computer portatile ho avviato una scansione antivirus. Comunque anche qui ho Windows 8 e IE 11 e sta funzionando alla grande.

vado sul tablet per vedere se c'è il file z_cercaruota.log che troverò solo se ci sono degli errori e fino ad esso non se ne sono verificati a mio parere
 
ti confermo che non ho trovato nessun file z_cercaruota.log. Devo scusarmi ma ho potuto dare solo un'occhiata veloce al file PDF che mi hai inviato.
 

Discussioni simili