Ho lavorato ancora sulla tua pagina.
Si il browser non da errori e come detto dopo aver tentato di modificare la text box questa resta attiva e non scompare e non richiama la pagina php
Il codice è quello fatto fa te: (tralascio i style)
codice:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>form fidelity</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
function cambia(campo,valore,riga){
var id = campo.split("_")[1];
var nomecampo = campo.split("_")[0];
$("#"+campo).removeAttr("onclick").html('<input type="text" name="'+nomecampo+'" class="input" id="'+nomecampo+'" value="'+valore+'" onblur="AggiornaDato(this.name,\''+valore+'\','+id+','+riga+')" >')
$("#"+nomecampo).select()
}
function AggiornaDato(nome_input,valore,record,riga){
var dati = nome_input+"="+$("#"+nome_input).val()+"&id="+record+"&row="+riga;
if(valore!=$("#"+nome_input).val()){
$.post("aaa.php",dati,function(responseText){
$("#risposta").html(responseText).fadeIn(300).delay(5000).fadeOut(200)
$("#"+nome_input+"_"+record).attr("onclick","cambia(this.id,this.innerHTML,"+riga+")").html($("#"+nome_input).val())
})
}else{
$("#"+nome_input+"_"+record).attr("onclick","cambia(this.id,this.innerHTML,"+riga+")").html($("#"+nome_input).val())
}
}
</script>
</head>
<body>
<div id="form">
<form><table width="100%" border="0" id="lista" cellspacing="2" cellpadding="0">
<tr>
<th scope="col" width="25%">Tessera</th>
<th scope="col" width="25%">Nome</th>
<th scope="col" width="25%">Data</th>
<th scope="col" width="25%">Punti</th>
</tr>
<tr><td height="25px" id="tessera_1" onclick="cambia(this.id,this.innerHTML,1)">565756789</td><td id="nome_1" onclick="cambia(this.id,this.innerHTML,1)">Andrea</td><td id="data_1" onclick="cambia(this.id,this.innerHTML,1)">2014-05-10</td><td id="punti_1" onclick="cambia(this.id,this.innerHTML,1)">20</td></tr><tr><td height="25px" id="tessera_2" onclick="cambia(this.id,this.innerHTML,2)">987654321</td><td id="nome_2" onclick="cambia(this.id,this.innerHTML,2)">Gino</td><td id="data_2" onclick="cambia(this.id,this.innerHTML,2)">2014-05-08</td><td id="punti_2" onclick="cambia(this.id,this.innerHTML,2)">55</td></tr>
</table></form></div>
<div id="risposta">ADDDDDDDDDDDDDDDDDDDDDDDAA</div>
</body>
</html>
Mentre la pagina php aaa.php è praticamente vuota:
codice:
<?php
if(isset($_POST["row"])){
$row=trim($_POST["row"]);
echo " Row: $row<br>";
}
?>
Tuttavia Da chrome attivando la console javascript mi da il seguente errore:
XMLHttpRequest cannot load file://.../aaa.php. Received an invalid response. Origin 'null' is therefore not allowed access.
Ho provato ad avviare chrome con consenso all'accesso ai file locali con comando:
chrome.exe --allow-file-access-from-files
ma niente..
il problema si verifica dentro la funzione AggiornaDato() che si blocca probabilmente per questione di permessi.
Faccio ancora un po di prove.