Visualizzazione risultati 1 fino 8 di 8

Discussione: Aggiornare risultato query con AJAX/JQUERY

  1. #1
    ysoolder non è connesso Utente giovane
    Data registrazione
    06-04-2013
    Messaggi
    97

    Unhappy Aggiornare risultato query con AJAX/JQUERY

    Salve a tutti. Avendo risolto il problema dell'invio della query senza aggiornare la pagina, ho il problema che quando invio la query la pagina non si aggiorna, ma se ad esempio la query deve stampare un risultato con scritto "aggiornato" non lo visualizza se non prima aggiorno la pagina. vi faccio un esempio

    1) Scrivo nella textarea il messaggio "ciao".
    2) Premo il tasto "invia" per inviare il messaggio "ciao" al database.
    3) Il messaggio "ciao" viene correttamente inviato al database con la query e la pagina non si aggiorna.
    4) Si dovrebbe visualizzare "ciao", ma non lo fa se prima non aggiorno la pagina.

    Non so se sono stato chiaro, ora vi posto le pagine.

    user.php

    Codice PHP:

    <td><textarea id="add_desc" name="add_desc"></textarea></td>
    <tr><td></td>
    <td style="font-family: verdana; font-size: 12px;">

    <input id="pulsante" onclick="vota(); return false;" style="border: none !important; background: transparent;" type="button" name="add_descr" value="Descrivi immagine" />

    </td>

    <?php

    }

    $desc = mysql_real_escape_string($_POST['add_desc']);

    ?>

    <td></td><tr><tr><tr><tr><tr><tr><tr><td></td>

    <td id="perc" name="perc"><?php echo $descrizione; ?></td>

    <script type="text/javascript">

    function vota(){
    desc = document.getElementById("add_desc").value;
    $.ajax({
    type: "POST",
    url: "/query/query_user.php",
    data: "add_desc=" + desc,
    });
    }
    </script>
    /query/query_user.php

    Codice PHP:
    $mio_utente = addslashes($_SESSION['username']);


    $add_descrizione = addslashes($_POST['add_desc']);

    mysql_query("UPDATE users SET descrizione_img = '".addslashes($add_descrizione)."' WHERE username = '".addslashes($mio_utente)." ' ");
    Come faccio ad aggiornare il messaggio che ho scritto nella textarea senza aggiornare la pagina? Ho seguito molte guide con document.load("#perc"); ma niente.

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Vuoi aggiornare il contenuto del tag <td id="perc" ...> con il contenuto appena inviato?
    jQuery ha alcuni callback in caso di successo/insuccesso della richiesta effettuata, puoi sfruttarli per impostare il contenuto o puoi impostarlo a prescindere (al di fuori della richiesta asincrona).

    Per esempio:
    Codice:
    function vota(){
    desc = document.getElementById("add_desc").value;
    $.ajax({
    type: "POST",
    url: "/query/query_user.php",
    data: "add_desc=" + desc,
    success: function(data) {
       $("#perc").text(desc);
    }
    });
    }
    Comunque dato che ha più che fare con javascript che php, sposto nella sezione più appropriata.

  3. #3
    ysoolder non è connesso Utente giovane
    Data registrazione
    06-04-2013
    Messaggi
    97

    Predefinito

    Grazie @javascripter per la risposta. Mi è stata d'aiuto

  4. #4
    ysoolder non è connesso Utente giovane
    Data registrazione
    06-04-2013
    Messaggi
    97

    Predefinito

    Mi sorge un'altra domanda. Come faccio ad aggiornare un pulsante?

  5. #5
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,753

    Predefinito

    Puoi prelevarlo tramite id e modificargli le varie proprietà. Esempio:
    Codice:
    document.getElementById("pulsante").value="votato";
    Visto che hai incluso jQuery, puoi benissimo farlo anche tramite quel framework nello stesso modo.

    Ciao!

  6. #6
    ysoolder non è connesso Utente giovane
    Data registrazione
    06-04-2013
    Messaggi
    97

    Predefinito

    Si, però io non capisco molto di Jquery o Ajax. La pagina user.php deve inviare i "Mi piace" al database

    Codice PHP:
    <div style="position:Absolute; left: 0px; top: 300px;">
    <?php
    if(mysql_num_rows(mysql_query("SELECT * FROM mipiace_foto WHERE utente = '$my_username' AND profilo = '$username'")) == 0){
    ?>

    <table>
    <td id="like" style="font-family: verdana; color: blue; width: 220px;"><p align="center"><input onclick="likeb(); return false;" id="like_b" type="button" name="like" value="Mi piace la foto"></p></td>
    <tr>
    <td style="font-family: verdana; color: blue; width: 220px;"><p align="left"><?php echo $num_like; ?></p></td>
    <tr>

    </table>

    <?php
    } elseif(mysql_num_rows(mysql_query("SELECT * FROM mipiace_foto WHERE utente = '$my_username' AND profilo = '$username'")) == 1){
    ?>
    <table>

    <td id="unlike" style="font-family: verdana; color: blue; width: 220px;"><p align="center"><input onclick="unlike(); return false;" id="unlike_b" type="button" name="unlike" value="Non piace la foto"></p></td>
    <tr>
    <td style="font-family: verdana; color: blue; width: 220px;"><p align="left"><?php echo $num_like; ?></p></td>
    <tr>

    </table>

    <script type="text/javascript">

    function likeb(){
    document.getElementById("pulsante").value="votato";
    $.ajax({
    type: "POST",
    url: "/query/query_user.php",
    data: "like=" + like,
    success: function(data) {
    $("#like").text(desc);
    }
    });
    }
    </script>



    <?php
    }
    e le query da eseguire le ho messe nella pagina /query/query_user.php

    Codice PHP:
    mysql_query("INSERT INTO mipiace_foto (utente, profilo, foto, data) VALUES ('$my_username','$username','$id','$data')") or die(mysql_error());

    mysql_query("DELETE FROM mipiace_foto WHERE utente = '$my_username' AND profilo = '$username'") or die(mysql_error());
    quindi penso che nella riga
    Codice PHP:
    data: "like=" + like,
    dovrei inviare $my_username, $username, $id e $data al database. Come posso fare?

  7. #7
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,753

    Predefinito

    Dalla documentazione:
    The data option can contain either a query string of the form key1=value1&key2=value2, or an object of the form {key1: 'value1', key2: 'value2'}. If the latter form is used, the data is converted into a query string using jQuery.param() before it is sent.
    Ciao!

  8. #8
    ysoolder non è connesso Utente giovane
    Data registrazione
    06-04-2013
    Messaggi
    97

    Predefinito

    Ancora niente da fare, sono troppo confuso

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •