Salve a tutti, ci ho sbattuto la testa per ore e alla fine mi sono arreso e vi chiedo cortesemente aiuto. Ho una pagina asp che preleva i dati da un db access. Volevo far si che si potessero modificare, grazie ad ajax, i dati "al volo", cioè senza passare per un form. Ho trovato uno script in rete, ma non riesco a recuperare le variabili e mi si cancellano i dati.
Ho la pagina prodotti_scheda.asp dove recupero l'ID del prodotto per visualizzarne i dati dove piazzo il JS per aprire un miniform cliccando sul valore che desidero cambiare, quindi
codice:
ID = request ("ID)
<script type="text/javascript" language="javascript">
var http_request = false;
function makeRequest(getvar) {
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(){
scrivi(getvar);
}
http_request.open('POST', 'update.asp?ID=<%=ID%>', true);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
postvar="campo="+getvar+"&valore="+eval("document.forms.dinamicform."+getvar+".value");
http_request.send(postvar);
}
function scrivi(getvar) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
document.getElementById(getvar).innerHTML = "<a href=\"javascript:void(null);\" onclick=\"change(this,'"+getvar+"')\">"+eval("document.forms.dinamicform."+getvar+".value")+"</a>";
document.getElementById("result").innerHTML = http_request.responseText;
} else {
alert('There was a problem with the request.');
}
}
}
function change(link,textname){
//link.innerText e link.text sono stessa cosa, c'è differenza tra ie e firefox
if(link.innerText){testovecchio=link.innerText}else{testovecchio=link.text}
//riscrivo il contenuto del div
document.getElementById(textname).innerHTML="<input type='text' name='"+textname+"' value='"+testovecchio+"'> <input type='button' value='ok' onclick=\"makeRequest(\'"+textname+"\')\">";
}
</script>
dove passo le variabili a update.asp con l'ID della abella
poi creo il form
e vado alla pagina update.asp dove dovrei aggiornare il database
codice:
<%
ID = request("ID")
'campo = request.form(campo)
riferimento = request.form("riferimento")
sql = "SELECT * FROM prodotti WHERE ID=" & ID
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, Conn, 3, 3
rs("riferimento") = riferimento
rs.update
rs.close
set rs = nothing
conn.close
set conn = nothing
operazione_ok=1
echo = "Tutto ben"
%>
ho provato a modificare il campo "riferimento" ma niente da fare
consigli?
grazie