Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Non ricaricare pagina submit AJAX

    Ciao a tutti ho trovato un modo semplicissimo per non ricaricare la pagina ed estrarre le mie query ma non riesco a capire come adattarlo al mio caso. Innanzitutto vi posto il funzionamento di ciò che ho trovato:

    Codice PHP:

    linkare nella sezione head della pagina del form
    <script src="js/ajaxsbmt.js" type="text/javascript"></script>

    <form name="MyForm" action="response_normal.asp" method="post" onsubmit="xmlhttpPost('response_ajax.asp', 'MyForm', 'MyResult', 'Wait...'); return false;">

       1.  Il primo paramentro ('response_ajax.asp') si riferisce alla pagina che riceverà i dati del form e risponderà
       2. Il secondo parametro ('MyForm') si riferisce al nome del form da cui prelevare i dati
       3. Il terzo parametro ('MyResult') si riferisce all'ID del DIV che conterrà la risposta del form ed il messaggio di attesa.
       4. Il quarto paramentro ('Wait...') si riferisce al messaggio di attesa che apparità durante l'invio dei dati. Potete anche inserire del codice HTML magari per far apparire un'immagine di caricamento. 
    Praticamente ho una pagina php dove straggo tutti gli utenti AMICI ed ognuno di essi ha una checkbox. nel form ho inserito 4 submit per far fare delle operazioni del tipo "blocca" "annulla amicizia" ma non capisco delle cose..

    Al click del submit vorrei che mi ricaricasse la parte dove ho i record estratti e facesse quelle funzioni aggiornando quindi lo stato ma non me lo fa e soprattutto al click di un submit mi ESEGUE TUTTE le funzioni invece che 1 solamente...

    Come devo fare?

  2. #2
    Se è capito bene la logica è sbagliata.. un form può avere una action, e un submit. Più submit non capisco cosa significhi all'interno di uno stesso form.
    Diciamo che dovresti fare pulsanti normali, non submit, e ad ognuno di questi mettere l'evento onclick nel quale richiami la tua funzione Ajax.
    Se ho capito bene il tuo problema dovresti fare così.

    Ma facci sapere

    Ciao!
    Prima di dire che sei un Webmaster, guarda in giro per la rete....

  3. #3
    Avevo fatto quattro submit per fare quattro azioni diverse del tipo

    Blocca
    Annulla amicizia
    Saluta
    Ignora


    quali tipi di pulsanti dovrei fare? tipo tag <a> ? Ma se si ha il javascript disattivato mi funzionano dopo?

  4. #4
    Quattro submit con 4 form diversi? Se hai il javascript disabilitato, Ajax non funzionerà mai! Dato che il suo cuore è javascript..

    <input type="button" onclick="funzione_javascript();">
    Prima di dire che sei un Webmaster, guarda in giro per la rete....

  5. #5
    no intendevo 4 submit con un solo form..

    il mio problema principale è uno ovvero:

    L'utente apre la pagina di gestione amicizie e quindi una query estrarrà dal db i suoi amici e li visualizzerà con una checkbox a fianco
    esempio:

    marco []
    giancarlo []
    pippo []
    gianni []

    bene ora se seleziono marco e giancarlo e clicco sulla submit "elimina amicizia" vorrei che senza fare il refresh della pagina mi aggiornasse la visualizzazione mostrandomi

    pippo []
    gianni []

    invece ora non me lo fa,mi accoda ogni cosa..

  6. #6
    ho creato una prova stupidissima per cercare di capire a fondo il funzionamento: ho creato una pagina che mi stampa gli utenti e gli mette un colore di sfondo,selezionando le checkbox di alcuni utenti e inviando la submit mi dovrebbe cambiare il colore di quelli appunto selezionati:

    Codice PHP:
     <div id=test>
     <table>
      <form name="modulo" action="<?php echo"$current_page"?>" method="post" onsubmit="xmlhttpPost('<?php echo"$current_page"?>', 'modulo', 'test', 'Attendere ;D ...'); return false;">
      
      <input type="submit" name="colora" value="Colora!" />
         <?php
         $current_page
    =$_SERVER['PHP_SELF']; 

      
                   
    //estraggo i dati di quell'utente dal db (recupero l'id dall'username e vedo se esiste)
                   
    $query_limit2 mysql_query("SELECT * FROM utenti LIMIT 30 ");
                   while(
    $results mysql_fetch_array($query_limit2)) 
                   {
                        
    $id_search $results['id'];      
                     
    $username $results['username'];
                     
                     
                     echo
    "<tr bgcolor=\"#00FF00\"><td> $username  !!  $id_search<input type=\"checkbox\" name=\"select_user[]\" value=" .$id_search" ></td></tr>";
                   }



               }
      
      
     
    ?>
     </form>
     </div>
     <?php
     
    if(isset($_POST['colora']))
    {
         
                 
    //estraggo i dati di quell'utente dal db (recupero l'id dall'username e vedo se esiste)
                   
    $query_limit2 mysql_query("SELECT * FROM utenti LIMIT 30 ");
                   while(
    $results mysql_fetch_array($query_limit2)) 
                   {
                        
    $id_search $results['id'];      
                     
    $username $results['username'];
                     
    $colorazione=0;
                     
                foreach (
    $select_user=$_POST['select_user'] as $id_user)
                 {
                     if(
    strlen($id_user)>0)
                      {
                         if(
    $id_user == $id_search)
                         
    $colorazione=1;
                      }
                      
                 }
                     if(
    $colorazione==0)
                     {
                     echo
    "<tr bgcolor=\"#00FF00\"><td> $username  !!  $id_search<input type=\"checkbox\" name=\"select_user[]\" value=" .$id_search" ></td></tr>";
                     }
                     else
                     {
                     echo
    "<tr bgcolor=\"#FF9966\"><td> $username  !!  $id_search<input type=\"checkbox\" name=\"select_user[]\" value=" .$id_search" ></td></tr>";
                     }
                     
                   }
                   
                   


    }
     
    ?>
      </table>
    qual è il problema? che cliccando su colora mi lascia tutti gli utenti che all'apertura della pagina mi aveva estratto,e poi mi accoda un'altra volta la stessa lista solo che quegli utenti che avevo selezionato me li colora diversamente...
    Come fare secondo voi?

  7. #7
    Allora devi gestire tutto in Ajax, se vuoi usare questo metodo. Con Ajax funziona che devi predisporre un div che caricherai dai dati che ti arrivano in modo asincrono (con chiamata ajax).
    Però sotto devi fare un pò di programmazione javascript, perchè i dati come ti arrivano (dopo una chiamata ajax)? O in formato testo, o meglio ancora in XML. Allora devi fare il parsing dell'XML e crei il codice HTML per visualizzare i nomi degli amici e le checkbox.
    Dopodichè devi fare una funzione javascript che ti legge le checkbox selezionate, invia questi dati alla pagine che dovrebbe cancellare i dati, presumibilmente da un db, riceve una risposta positiva e/o la nuova lista di amici, e visualizza come nel passo precedente.

    Potresti anche fare che la lista iniziale la crei da PHP direttamente, ma poi sempre la devi aggiornare da Ajax, tanto vale fare tutto uguale e coerente.
    Prima di dire che sei un Webmaster, guarda in giro per la rete....

  8. #8
    Lo script non penso faccia al tuo caso. Semplicemente serve per inviare i dati di un form con Ajax, visualizzare un mex nel frattempo, e ricevere indietro l'esito dell'operazione. Ma a te serve uno scambio di dati bidirezionale.
    Scusa ma quanto conosci javascript e php?
    Perchè se usi una variabile $current_page, e dopo la valorizzi, forse mi vengono dei dubbi leciti..
    Prima di dire che sei un Webmaster, guarda in giro per la rete....

  9. #9
    Di javascript ne so veramente poco,essenzialmente faccio tutto solo in php..

    Volevo cominciare ad usare ajax per rendere più dinamiche le funzioni ed effettivamente da qualche base devo cominciare a fare esperienza..

    per quanto riguarda
    $current_page la inizializzo ad inizio pagina con

    $current_page=$_SERVER['PHP_SELF'];


    cosa mi posso vedere per fare questa cosa?

  10. #10
    Guarda oggi come oggi l'approccio migliore per usare Ajax è l'utilizzo di qualche framework javascript che ti aiuta parecchio. Per esempio ti consiglierei di studiare JQuery, comodo, utile e di abbastanza facile apprendimento.
    Cmq per usare al meglio ajax devi capire bene come funziona, così poi da evitare problemi durante lo sviluppo.
    Una volta capito come funzionano le cose con questa tecnologia, non sarà più il framework che usi a determinare come sviluppare, ma sarai tu che capirai cosa deve fare l'applicativo e troverai il framework, o il codice javascript, per farlo.
    Cmq anche una base di javascript non sarebbe per niente male.. su html.it dovresti trovare delle guide che ti possono aiutare..
    Prima di dire che sei un Webmaster, guarda in giro per la rete....

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 © 2025 vBulletin Solutions, Inc. All rights reserved.