Salve,
sto realizzando un sito in PHP e per adesso lo sto facendo in locale. In parole povere ho un server installato sulla mia macchina.
Ho integrato in una della pagine due script che mi consentono di aggiornare in modo asincrono pare della stessa
script 1
Codice PHP:
// funzione per prendere un elemento con id univoco
function prendiElementoDaId(id_elemento)
{
var elemento;
if(document.getElementById)
elemento = document.getElementById(id_elemento);
else
elemento = document.all[id_elemento];
return elemento;
};
// funzione per assegnare un oggetto XMLHttpRequest
function assegnaXMLHttpRequest()
{
var
XHR = null,
browserUtente = navigator.userAgent.toUpperCase();
if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
XHR = new XMLHttpRequest();
else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0)
{
if(browserUtente.indexOf("MSIE 5") < 0)
XHR = new ActiveXObject("Msxml2.XMLHTTP");
else
XHR = new ActiveXObject("Microsoft.XMLHTTP");
}
return XHR;
};
/** OGGETTI / ARRAY */
// oggetto di verifica stato
var readyState =
{
INATTIVO: 0,
INIZIALIZZATO: 1,
RICHIESTA: 2,
RISPOSTA: 3,
COMPLETATO: 4
};
// array descrittivo dei codici restituiti dal server
// [la scelta dell' array è per evitare problemi con vecchi browsers]
var statusText = new Array();
statusText[100] = "Continue";
statusText[101] = "Switching Protocols";
statusText[200] = "OK";
statusText[201] = "Created";
statusText[202] = "Accepted";
statusText[203] = "Non-Authoritative Information";
statusText[204] = "No Content";
statusText[205] = "Reset Content";
statusText[206] = "Partial Content";
statusText[300] = "Multiple Choices";
statusText[301] = "Moved Permanently";
statusText[302] = "Found";
statusText[303] = "See Other";
statusText[304] = "Not Modified";
statusText[305] = "Use Proxy";
statusText[306] = "(unused, but reserved)";
statusText[307] = "Temporary Redirect";
statusText[400] = "Bad Request";
statusText[401] = "Unauthorized";
statusText[402] = "Payment Required";
statusText[403] = "Forbidden";
statusText[404] = "Not Found";
statusText[405] = "Method Not Allowed";
statusText[406] = "Not Acceptable";
statusText[407] = "Proxy Authentication Required";
statusText[408] = "Request Timeout";
statusText[409] = "Conflict";
statusText[410] = "Gone";
statusText[411] = "Length Required";
statusText[412] = "Precondition Failed";
statusText[413] = "Request Entity Too Large";
statusText[414] = "Request-URI Too Long";
statusText[415] = "Unsupported Media Type";
statusText[416] = "Requested Range Not Satisfiable";
statusText[417] = "Expectation Failed";
statusText[500] = "Internal Server Error";
statusText[501] = "Not Implemented";
statusText[502] = "Bad Gateway";
statusText[503] = "Service Unavailable";
statusText[504] = "Gateway Timeout";
statusText[505] = "HTTP Version Not Supported";
statusText[509] = "Bandwidth Limit Exceeded";
script 2
Codice PHP:
// INIZIO INTEGRAZIONE CODICE PER LA GESTIONE DEI FILTRI IN AJAX
function caricaTesto(nomeFile)
{
var
ajax = assegnaXMLHttpRequest(),
elemento = prendiElementoDaId("box_edit_calendario"),
cmbNome = prendiElementoDaId("nome"),
cmbLuogo = prendiElementoDaId("luogo"),
cmbData = prendiElementoDaId("data"),
cmbOra = prendiElementoDaId("ora"),
nome = "nome=" + cmbNome.value,
luogo = "luogo=" + cmbLuogo.value,
data = "data=" + cmbData.value,
ora = "ora=" + cmbOra.value;
variabileTot = nome + "&" + luogo + "&" + data + "&" + ora;
if(ajax)
{
ajax.open("post", nomeFile, true);
ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
ajax.setRequestHeader("content-type", "text/html; charset=ISO-8859-1");
ajax.setRequestHeader("connection", "close");
ajax.onreadystatechange = function()
{
if(ajax.readyState === readyState.COMPLETATO)
{
if(statusText[ajax.status] === "OK")
elemento.innerHTML = ajax.responseText;
else
{
elemento.innerHTML = "<tr><td colspan=\"4\">Errore durante l'esecuzione dello script.</td></tr>";
elemento.innerHTML += "<tr><td colspan=\"4\">Errore corrente: " + statusText[ajax.status] + "</td></tr>";
}
}
}
ajax.send(variabileTot);
}
return null;
}
// FINE INTEGRAZIONE AJAX
nella pagina in questione richiamo all'evento onchange delle select in questo modo
codice:
onchange=\"return caricaTesto('table.php')\
il problema è il seguente
se scrivo nel browser
http://localhost/pagina.php
funziona tutto regolarmente
se provo a collegarmi dall'esterno facendo
http://mioip/pagina.php
il server funziona. riesco a visualizzare la pagina. ma non funziona più ajax. settando il filtro mi scompare tutto.
per caso bisogna settare qualcosa sul server affinchè tutto fili liscio?
grazie