Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    aggiornare contenuto pulsante senza refresh

    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:

    <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>

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

    <a class='muted' href=\"javascript:;\" 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?

  2. #2

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    cerca un elemento con id cosi' composto $('#'+postid+'_'+type+'s')
    c'e' questo elemento? non sembrerebbe
    sembra che ci sia solo questo id='$postid'

  4. #4
    http://imagelink.altervista.org/

    questa è la pagina dove ogni news ha il suo like...se si fa la prova a mettere su un qualisiasi like si pensa che non succede nulla...invece nel db viene tutto registrato...per vedere l'incremento del like devo aggiornare la pagina


    @xinod in base a quello che mi hai detto tu ho sostituito $('#'+postid+'_'+type+'s')
    con
    $('#$postid')


    ma nn va lo stesso

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da fabio_198

    @xinod in base a quello che mi hai detto tu ho sostituito $('#'+postid+'_'+type+'s')
    con
    $('#$postid')


    ma nn va lo stesso
    quello che ti ho detto e' che l' id che cerchi non c'e', l' errore e' li'
    se cosi' come hai scritto ritrovi lo stesso id va bene

    poi, un id non puo' essere solo numerico o cominciare per numero
    poi, doActionsave ha un } di troppo, guarda la console

  6. #6
    grazie avevi perfettamente ragione, ora trova l'id e si aggiorna..quindi problema risolto grazie!

  7. #7
    riprendo questo post perchè mi sono accorto di un piccolo malfunzionamento dello script...e cioè quel problema è stto risolto...solo che lo fa (l'incremento del like in real time) solo una volta...se voglio mettere più like in una volta senza aggiornare la pagina non posso...

    qualcuno sa la soluzione?... se devo mettere un "ciclo" magari su js

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.