salve..
vi espongo il mio problema con del codice js/ajax:
se uso questo:
Codice:
<p id='settingBoxTitle'>Logo & Titolo</p><p id='settingBoxSubTitle'>Imposta il logo, ed il titolo per il tuo forum.</p><div id='settingBoxContent'><p class='settingBoxContentTitle'>Scegli il titolo</p><form action='#' method='post'>Usa il campo sottostante per inserire il titolo del tuo forum.<p><input type='text' name='mainTitle' id='mainTitle' value='Scrivi il titolo' class='txtField' onblur='validateTitle();' /> <span id='spanCheck'> </span><span id='warning' style='border:1px solid red; filter:alpha(opacity=60); -moz-opacity:0.6; opacity: 0.6; margin:5px;'></span></p><p class='settingBoxContentTitle'>Logo</p>Seleziona un'immagine da utilizzare come logo.<p><input type='file' name='logoUploader' /></p><input type='submit' name='invia' value='Invia' class='inputBtn' /></form><div style='display:none;'><img src='./img_general/check0.png' /><img src='./img_general/check1.png' /></div></div>
// e poi nello script
function validateTitle() {
var xmlhttp;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("spanCheck").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","./php_ajax/validateTitle.php",true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
var parameter = "mainTitle=" + encodeURIComponent(document.forms[0].elements.namedItem("mainTitle").value);
xmlhttp.send(parameter);
}
tutto funziona... ma se faccio la stessa cosa provando ad usare una funzione di callback (così in fututo da non dovere ripetere codice):
Codice:
<p id='settingBoxTitle'>Logo & Titolo</p><p id='settingBoxSubTitle'>Imposta il logo, ed il titolo per il tuo forum.</p><div id='settingBoxContent'><p class='settingBoxContentTitle'>Scegli il titolo</p><form action='#' method='post'>Usa il campo sottostante per scegliere il titolo del tuo forum.<p><input type='text' name='mainTitle' id='mainTitle' value='Scrivi il titolo' class='txtField' onblur='validateTitle(\"mainTitle\",\"spanCheck\");' /> <span id='spanCheck'> </span><span id='warning' style='border:1px solid red; filter:alpha(opacity=60); -moz-opacity:0.6; opacity: 0.6; margin:5px;'></span></p><p class='settingBoxContentTitle'>Logo</p>Seleziona un'immagine da utilizzare come logo.<p><input type='file' name='logoUploader' /></p><input type='submit' name='invia' value='Invia' class='inputBtn' /></form><div style='display:none;'><img src='./img_general/check0.png' /><img src='./img_general/check1.png' /></div></div>
function ajaxFunction(inputName,phpFile,theRealFunction) {
var xmlhttp;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = theRealFunction;
xmlhttp.open("POST",phpFile,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
var parameter = inputName + "=" + encodeURIComponent(document.forms[0].elements.namedItem(inputName).value);
xmlhttp.send(parameter);
}
function validateTitle(inputName,spanID) {
// inputName è una variabile che contiene il nome del campo input in cui è inserito il testo
// spanID è una variabile che contiene l'id dello span in cui inserire l'immagine con l'esito dell'operazione
ajaxFunction(inputName,"./php_ajax/validateTitle.php",function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById(spanID).innerHTML=xmlhttp.responseText;
}
});
}
non va, e non capisco il perchè... a me sembra tutto ok...
il file php è lo stesso per entrambi, e dunque il problema direi che non sta li... quindi evito di postare...