aggiornare contenuto pulsante senza refresh pagina

fabio_198

Utente Attivo
8 Nov 2012
53
0
0
Salve!

come da titolo, grazie a una guida, ho costruito un pulsante "like", che ovviamente comunica con una tabella in un db.

ecco il codice:

PHP:
<script>//database connction
function doAction(postid, type) {
$.post('doAjax.php', {postid:postid, type:type}, function(data){
if(isNaN(parseFloat(data))){
alert(data);
}else{
$('#'+postid+'_'+type+'s').text(data);
}
});
}
</script>

/////////////////////questo è il pulsante:

<a class='muted' href=\"java-script:;\" onclick=\"doAction('$postid','like');\"><button class='btn'> <span id='$postid'>$data->like</span></button></a>

///////////////e questo è il file doAjax.php

<?php
include ('db.php');

if($_POST['postid'] != '' && $_POST['type'] != ''){

$alreadyExist = mysql_num_rows(mysql_query(' SELECT id FROM voted WHERE postid="'.(int)$_POST['postid'].'" AND ip="'.$_SERVER['REMOTE_ADDR'].'"'));

if($alreadyExist==0){ //oopsm mybad

if($_POST['type']=='like'){
mysql_query(' UPDATE posts SET `like`=`like`+1 WHERE id="'.(int)$_POST['postid'].'"');
$num = mysql_fetch_row(mysql_query(' SELECT `like` FROM posts WHERE id="'.(int)$_POST['postid'].'" LIMIT 1'));
}
echo $num[0];
mysql_query(' INSERT INTO voted (`postid`, `ip`) VALUES ("'.(int)$_POST['postid'].'","'.$_SERVER['REMOTE_ADDR'].'")');
}else{
echo "You already voted this.";
}

}
?>

il pulsante funziona e incrementa i like dentro la tabella...solo che per vedere incrementare il numero di like che stanno dentro il pulsante devo ricaricare la pagina.

qualcuno sa dirmi come fargli fare l'incremento in real time?
 
Ultima modifica di un moderatore:
Codice:
<script>
function update () {
	document.f.in.value++;
}
</script>

<form name = 'f'>
<input name = 'in' value = 0>
<input type = 'button' onClick = 'update();' value = 'Aumenta'>
</form>
Direi che ti serve qualcosa del genere.. Poi puoi modificare quanto ti ho scritto sulla base di quello che serve a te!
 
Intanto grazie per il supporto, io purtroppo ancora non mastico tantissimo di js e mi sono un pochettino "impacciato" nell'adattare il codice tuo al mio.

Da quello che ho capito il file ajax non mi serve per questo piccolo intoppo, quindi il codice che mi resta è:

Codice:
<script>//database connction
function doAction(postid, type) {
$.post('doAjax.php', {postidostid, type:type}, function(data){
if(isNaN(parseFloat(data))){
alert(data);
}else{
$('#'+postid+'_'+type+'s').text(data);
}
});
}
</script>
per js

e questo il pulsante:
Codice:
<a class='muted' href=\"java-script:;\" onclick=\"doAction('$postid','like');\"><button class='btn'> <span id='$postid'>$data->like</span></button></a>

il pulsante non sta dentro un form, ma sta dentro una tabella che a sua volta sta dentro un div
 

Discussioni simili