Ma è possibile che io devo stare 2 giorni blokkato su ...prima 1 problema che scopro essere una cavolata...e ora mi si presenta il secondo inghippo!!!!!!!!!!
Sto passdando ad una pagina remota i dati di un form mano a mano che viene compilato, per farne il controllo...il primo problema è stato che usavo il nome campo = al nome ID e questo incasinava il tutto su IE ...1 giorno perso...
ora mi si prenseta (credo) un problema di cache per IE (firefox ovviamente tutto ok)
...il prob. è che lo script "valida" solo 1 campo e gli altri ...se ne frega... non mi fa "nulla"...
questa la parte della pagina del form...copio l'indispensabile per capirci ...
Codice PHP:
PAGINA 1
[B]Email[/B]
<input type="text" name="nome" value="" size="20" onChange="CheckField(this)" tabindex="1"><div id="nomecheck" class="message"></div>
[B]Password minimo 6 caratteri:[/B]
<input type="password" name="password" onChange="CheckField(this)" value="" class="obbligatori" /><div id="passwordcheck" class="message"></div>
Questa la parte che riceve i dati via "ajax"...sempre 2 righe per capirci
Codice PHP:
PAGINA 2
//Nome
if($field == 'nome'){$msg = '[img]./images/ok.png[/img]';}
//password
if($field == 'password'){if (strlen($value) >= '6'){$msg = '[img]./images/ok.png[/img]';}else{$msg = 'Password troppo corta';}}
Questo il js della pagina 1
codice:
var AJAXForms = false;
var LastField = null;
var isIE = false;
// on !IE we only have to initialize it once
if (window.XMLHttpRequest) {
AJAXForms = new XMLHttpRequest();
}
function CheckField(field) {
if (window.XMLHttpRequest) {
// branch for IE/Windows ActiveX version
} else if (window.ActiveXObject) {
AJAXForms = new ActiveXObject("Microsoft.XMLHTTP");
}
AJAXForms.onreadystatechange = processChange;
AJAXForms.open("GET", "check_form.php?op=ajax&field=" +field.name+"&value=" + field.value);
LastField = field.name;
AJAXForms.send(null);
}
function processChange() {
if (AJAXForms.readyState == 4) {
var res = document.getElementById(LastField+"check");
res.innerHTML = AJAXForms.responseText;
res.style.visibility = "visible";
}
}
// LastField+"check" --> per evitare di avere id e nome campo input uguali
Ora ...in FF mi fa entrambi i campi mentre in IE solo uno o l'altro...poi smette di "funzionare"
Nella pagina 1 e nella pagina 2 in cima ho povato
header( "Cache-Control: no-cache" );
ma NADA