il codice JS per prelevare il valore del Input è corretto .
nel PHP per passare i dati dovresti usare mysqli_real_escape_string
... ma non hai postato tutto il codice AJAX o hai scritto solo quello ?
ho creato un piccolo esempio
dove si richiede di effettuare una votazione , si passa il valore ai file PHP che aggiorna il DB e si legge il risultato modificato con AJAX
nel file iniziale ho inserito un form e lo script AJAX
Codice HTML:
<html>
<body>
<script language="javascript" type="text/javascript">
function ajaxFunction(){
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("risposta").innerHTML=xmlhttp.responseText;
}
}
var voto = document.getElementById('voto').value;
var ID = 1; /* per provare imposto un ID , ma questo valore é ID della News che devi votare */
var queryString = "?vota=" + voto ;
queryString += "&ID=" + ID;
xmlhttp.open("GET","databaseop.php" + queryString,true);
xmlhttp.send();
}
</script>
<form name='mioform'>
Voto: <input type='text' id='voto' /> <br />
<input type='button' onclick='ajaxFunction()' value='VOTA'/>
</form>
<div id='risposta'></div>
</body>
</html>
nel file PHP invece leggo i dati inviati dal form , eseguo un ricerca del ID , estrapolo la votazione precedente e ci sommo quella attuale ; quindi eseguo UPDATE del DB e eseguo un echo del nuovo valore.
Codice PHP:
<?php
$con=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$vota = mysqli_real_escape_string($con, $_GET['vota']);
$id = mysqli_real_escape_string($con, $_GET['ID']);
$ID = intval ( $id );
$voto = intval ( $vota );
$query = "SELECT * FROM `votazione` WHERE `ID`=$ID";
$qry_result = mysqli_query($con,$query) or die(mysqli_error());
while($row = mysqli_fetch_array($qry_result)){
$votoprec = "$row[vota]";
}
$voto = $voto + $votoprec;
mysqli_query($con,"UPDATE votazione SET vota=$voto WHERE ID=$ID");
$query = "SELECT * FROM `votazione` WHERE `ID`=$ID";
$qry_result = mysqli_query($con,$query) or die(mysqli_error());
while($row = mysqli_fetch_array($qry_result)){
$votoadesso = "$row[vota]";
}
echo $votoadesso;
mysqli_close($con);
?>
chiaramente il codice è minimale allo scopo di semplificarne la comprensione.
P.S.
L'utilizo di AJAX era stato già spiegato nelle guide in "How-To"