Visualizzazione risultati 1 fino 18 di 18
Like Tree1Likes
  • 1 Post By ysoolder

Discussione: Richiamare pagina AJAX ed eseguire query senza aggiornare

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

    Predefinito Richiamare pagina AJAX ed eseguire query senza aggiornare

    Salve a tutti. Io ho delle pagine chiamate user.php e nella directory /query/ ho la pagina query_user.php.

    user.php

    Codice PHP:
    <?php
    if($username == $my_username){
    ?>
    <form method="post">

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

    <input id="pulsante" onclick="vota();" style="border: none !important; background: transparent;" type="submit" name="add_descr" value="VOTA">

    </td>

    </form>

    <?php


    }
    $add_desc = addslashes($_POST['add_desc']);
    ?>


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

    <td><?php echo $descrizione; ?></td>

    </tr>
    </table>


    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
    <script type="text/javascript">
    function vota(){
    $.ajax({
    type: "POST",
    url: "/query/query_user.php",
    data: "add_desc="<? $add_desc?>,
    success: function(msg){
    alert( "Data Saved: " + msg );
    }
    });
    }
    </script>
    /query/query_user.php

    Codice PHP:
    <?php

    session_start
    ();

    include (
    '/membri/ysoolder/settings.php');

    if(!isset(
    $_SESSION['username'])){
    header ('Location: /membri/ysoolder/index.php');
    }
    else
    {
    session_regenerate_id();
    }
    $my_username = addslashes($_SESSION['username']);

    if(isset(
    $_POST['add_descr'])){

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

    mysql_query("UPDATE FROM users SET descrizione_img = '$add_descrizione' WHERE username = '$my_username'");

    }


    ?>
    La mia domanda è questa: Dove sbaglio? Vorrei eseguire la query senza aggiornare la pagina. Come mai la query viene eseguita ma la pagina si aggiorna?

  2. #2
    Guest

    Predefinito

    se fai submit e non la blocchi (preventDefault o return) non può aspettarti altro
    Ultima modifica di FormularioDiDrakensang : 27-07-2014 alle ore 11.30.36

  3. #3
    Guest

    Predefinito

    Il modo più rapido è campiare il type del pulsante da submit a un semplice button ;)

  4. #4
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Prova a vedere questa guida se hai bisogno di altro aiuto , chiedi pure..
    Ultima modifica di NLSweb : 27-07-2014 alle ore 13.57.34

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

    Predefinito

    @helpcode ho fatto come dici tu. Ho cambiato questo

    Codice HTML:
    <input id="pulsante" onclick="vota();" style="border: none !important; background: transparent;" type="submit" name="add_descr" value="VOTA"> 
    in questo

    Codice HTML:
    <input id="pulsante" onclick="vota();" style="border: none !important; background: transparent;" type="button" name="add_descr" value="VOTA"> 
    e adesso mi da l' alert di successo.

    @FormularioDiDrakensang ho messo onClick="vota(); return false;" ma ancora nulla


    @NLSweb grazie per la guida, la userò in caso non riesco ad ottenere risultato.

  6. #6
    Guest

    Predefinito

    il return/preventDefault equivale a cambiare submit in button, tu pero' avevi fatto un'altra domanda ricordi ?
    La mia domanda è questa: Dove sbaglio?


    (il form comunque ti serve a ben poco...)
    quando si usa un form ma non si vuole uscire dalla pagina
    si intercetta l'evento submit e lo si 'distrugge' con return false dopo aver fatto... <quello che devi fare>
    Ultima modifica di FormularioDiDrakensang : 27-07-2014 alle ore 18.46.00

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

    Predefinito

    @FormularioDiDrakensang scusami, non avevo capito. Ho cambiato il submit in questo modo:

    Codice HTML:
    <input id="pulsante" onclick="vota(); return false;" style="border: none !important; background: transparent;" type="button" name="add_descr" value="VOTA" /> 
    ed ho tolto il <form ..> facendolo diventare cosi:

    Codice HTML:
    <?php
    if($username == $my_username){
    ?>
    
    <td><textarea name="add_desc"></textarea></td>
    <tr><td></td>
    <td style="font-family: verdana; font-size: 12px;">
    
    <input id="pulsante" onclick="vota();" style="border: none !important; background: transparent;" type="submit" name="add_descr" value="VOTA">
    
    </td>
    
    <?php
    
    
    }
    $add_desc = addslashes($_POST['add_desc']);
    ?>
    
    
    <td></td><tr><tr><tr><tr><tr><tr><tr><td></td>
    
    <td><?php echo $descrizione; ?></td>
    
    </tr>
    </table> 
    ma ancora nulla.

  8. #8
    Guest

    Predefinito

    <input id="pulsante" onclick="vota();" style="border: none !important; background: transparent;" type="submit" name="add_descr" value="VOTA">

    al piu'

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

    ma ancora nulla.
    cioe' ?

    apparte quello la textarea non ha un id, se non vedo male non la leggi nemmeno

    credo che quasi quasi convenga partire dal problema e riscrivere tutto in modo piu' ordinato o almeno poter seguire il tutto come un unico 'flusso'

    nota: gli stili sarebbe opportuno rimandarli a un unica sezione css
    Ultima modifica di FormularioDiDrakensang : 27-07-2014 alle ore 19.12.25

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

    Predefinito

    Adesso farò un esempio in locale molto semplice, cosi da poter visualizzare il problema o il mio errore. Lo posto tra 5 minuti.

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

    Predefinito

    Eccolo completo. Ho riscritto tutto da capo, sperando non ci siano errori. Allora, ecco qui:

    index.php
    Codice HTML:
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title></title>
            
    <script type="text/javascript"> 
    function vota(){
    $.ajax({
       type: "POST",
       url: "/query.php",
       data: "add_desc="<? echo $add_desc; ?>, 
       success: function(msg){
         alert( "Data Saved: " + msg );
       }
     });
     }
    </script>
    
            
        </head>
        <body>
            <textarea id="add_desc" name="add_desc"></textarea>
    
            <input id="pulsante" type="button" onClick="vota(); return false;" value="VOTA">
            
    
            
        </body>
    </html>
    query.php

    Codice PHP:
    <?php

    mysql_select_db
    ('utenti');
    mysql_connect('localhost','root','');

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

    mysql_query("UPDATE FROM prova SET utente = '$add_descrizione'");
    ?>
    Ci sono errori? A me sembra di si visto che non succede nulla

  11. #11
    Guest

    Predefinito

    <html>
    <body>
    <textarea id="add_desc"></textarea>
    <input id="pulsante" type="button" onClick="vota()" value="Vota">

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
    <script type="text/javascript">
    function vota(){
    desc = document.getElementById("add_desc").value;// o vuoi fare anche questo con jquery --> $("#add_desc").val();
    $.ajax({
    type: "POST",
    url: "query.php",
    data: "add_desc=" + desc,
    success: function(msg){
    alert( "Data Saved: " + msg );
    }
    });
    }
    </script>
    </body>
    </html>
    .......

    nota se query.php non restituisce niente l'alert dira' solo
    Data saved:
    p.es puoi aggiungere print $add_descrizione; o print "OK!"
    Ultima modifica di FormularioDiDrakensang : 27-07-2014 alle ore 19.45.17

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

    Predefinito

    Infatti ancora mi restituisce l'alert con Data saved:. Cosa posso fare? Sinceramente la mia conoscenza di ajax è ZERO.

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

    Predefinito

    ERRORE MIO!! Invece di scrivere "UPDATE users" ho scritto "UPDATE FROM users". La query l'ha eseguita senza aggiornare, ma come posso aggiornare la descrizione?

  14. #14
    Guest

    Predefinito

    Al dilà del FROM che hai notato anche tu, la query non ha senso!

    La query deve essere:

    UPDATE nome_tabella SET parametro_da_modificare = $latuavariabile WHERE campo_distintivo = $variabileDistintiva

    Suppongo che i vari utenti abbiano un id...devi passare anche quello via POST e usarlo come $variabileDistintiva.

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

    Predefinito

    Adesso ho risolto perchè la query la esegue, solo che non mi aggiorna il risultato della query.

  16. #16
    Guest

    Predefinito

    Ripeto, se la query non la strutturi come ti ho indicato, mysql la eseguirà anche, ma non ha senso come query ;) Fidati!

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

    Predefinito

    La query che eseguo è questa:

    Codice PHP:
    mysql_query("UPDATE users SET descrizione_img = '".$add_descrizione."' WHERE username = '$my_username'") or die(mysql_error());
    Non capisco cosa intendi tu.

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

    Predefinito

    Niente?

Regole di scrittura

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