Ciao raga, ho un problema abbastanza complesso con ajax che non so proprio risolvere.![]()
In una pagina asp che aggiornava dei dati nel modo classico sto cercando di applicare le funzioni ajax per aggiorname in tempo reale i campi modificati dall'utente.
In particolare ho usato queste:
Nella funzione makeRequest, "getvar" è l'id dell'elemento che contiene i dati da inviare, mentre "risposta" se è true ritorna dei dati dalla pagina upload.asp in un apposto div.codice:var http_request = false; function makeRequest(numPrest, getvar, id_post, risposta) { numPrest = numPrest.replace("/",""); http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { //http_request.overrideMimeType('text/xml'); // See note below about this line } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Giving up :( Cannot create an XMLHTTP instance'); return false; } http_request.onreadystatechange = function(){ if (risposta==true) scrivi(getvar); } if (document.getElementById(getvar).value=="") nuovoValore = "null"; else { nuovoValore = document.getElementById(getvar).value; nuovoValore = nuovoValore.replace(".",","); } if (nuovoValore!="null" || numPrest!="null") { http_request.open('POST', 'update.asp', true); http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); postvar="id="+id_post+"&valoreReale="+nuovoValore+"&numPrest="+numPrest; http_request.send(postvar); } } function scrivi(getvar) { if (http_request.readyState == 4) { if (http_request.status == 200) { document.getElementById('provaLuca').innerHTML = http_request.responseText; alert(http_request.responseText); } else { alert('Response AJAX Fallita'); } } } function inviaCalcoliAJAX() { 'da un input text prelevo i parametri var numCampiCalcolati = parseInt(document.getElementById('MaxIndiceCampiCalcolati').value); var paramtri; var nomeCampo; for(i=1; i<=numCampiCalcolati; i++) { nomeCampo = String("Calcolato_" + i); parametri = (document.getElementById(nomeCampo).value).split("|"); makeRequest(parametri[0],parametri[1],parametri[2],parametri[3] ); } }
La pagina upload.asp è la seguente:
Se richiamo la funzione "makeRequest" direttamente (con i paramtri che poi salvo nella input text), il tutto funziona (aggiornamento al db compreso) e ritorna i valori correttamente.codice:'valori inviati via post da AJAX id = request.form("id") valoreReale = request.form("valoreReale") numPrest = request.form("numPrest") 'OPERAZIONI ESEGUITE SU 'DATABASE response.write id+valoreReale+numPrest
Se invece richiamo "inviaCalcoliAJAX", la pagina upload.asp esegue corretamente le operazioni su db e quindi in parte funziona, ma non ritorna niente... mistero![]()
So che è una gran confusione il codice che ho inserito, ma qualcuno potrebbe aiutarmi??
grazie 1000 cmq.
Ciao![]()


Rispondi quotando