Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 35

Discussione: ajax e metodo get form

  1. #1
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499

    ajax e metodo get form

    Allora sono tre ora che sto impazzendo con questo codice:
    Codice PHP:
    <?php
    if (isset($_GET['action']) != "") { 
    switch (
    $_GET['action']) {
        case 
    'avanti':  //maschera d'inserimento
         
    echo "

    <span class=\"rosa\">Compila con i tuoi dati</span>
         <form name=\"reg\" id=\"reg\" method=\"get\" />
          <input name=\"nick\" type=\"text\" id=\"nick\" /><span class=\"bianco\">"
    .NICK."[b]*[/b]</span>

          <input name=\"mail\" type=\"text\" id=\"mail\" /><span class=\"bianco\">"
    .MAIL."[b]*[/b]</span>

          <input name=\"pwd\" type=\"password\" id=\"pwd\" /><span class=\"bianco\">"
    .PWD."[b]*[/b]</span>

          <input name=\"pwd2\" type=\"password\" id=\"pwd2\" /><span class=\"bianco\">"
    .RETYPE_PWD."[b]*[/b]</span>

          <input name=\"Submit\" type=\"submit\" class=\"login\" onClick=\"javascript:caricaBox('boxes/register_user.php?action=avanti2&action2=registrami', 'site');return false;\" value=\""
    .REGISTER_ME."\" />
         </form></p>"
    ;
        break;
        case 
    'avanti2':
        if ((
    $_GET['action2']) == "registrami") { 

            
    $nick $_GET['nick'];
            
    $email $_GET['mail'];
            
    $pwd $_GET['pwd'];
            
    $pwd2 $_GET['pwd2'];
    echo 
    $nick//NON MI STAMPA NIENTE!!!!
        
    }
        break;
         
        default:  
    //  homepage con regolamento
          
    echo "

    <span class=\"rosa\">"
    .REGISTER_RULE."</span></p>";
          echo 
    "<form name=\"reg\" id=\"reg\" method=\"get\" />

    "
    .READ_RULE."</p>
          <input name=\"Submit\" type=\"submit\" class=\"login\" onClick=\"javascript:caricaBox('boxes/register_user.php?action=avanti', 'site');return false;\" value=\""
    .CONFERMO."\" />
          </form>"

        }
    }
    ?>
    Perchè quando eseguo il controllo if (($_GET['action2']) == "registrami")
    (che viene eseguito)
    non ottengo i valori dei campi?
    Se faccio l'echo dei valori recuperati con $_GET[] non ottengo niente.
    Con get non passa i valori dei campi??

    Per capire vi posto il codice Ajax
    Codice PHP:
    <script type="text/javascript"><!--//

    function caricaBox(stringIdBox) {  
        var 
    url_action string

        new 
    Ajax.Request(url_action, {onComplete:showResponse} ); 
        function 
    showResponse(originalRequest)      
            { 
            $(
    IdBox).innerHTML originalRequest.responseText
            } 
    return 
    false;

    //--></script> 

  2. #2
    suppongo perche tu non fai un submit....

    Mi sa che non ti è molto chiaro come funziona il tutto:

    Ajax.Response invia una richiesta ajax all'url che gli passi, quindi, dato che gli passi "boxes/register_user.php?action=avanti2&action2=registram i" pa tua pagina PHP riceve

    $_GET = array("action" => "avanti2", "action2" => "registrami");

    e basta, devi ottenere e serializzare il form in una serie di parametri per otterere qualcosa.

    Codice PHP:
    new Ajax.Request(url_action, {method :'get'parameters : $('reg').serialize(true), onComplete:showResponse} ); 
    ti ricordo che "reg" è l'id della form che usi.

  3. #3
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Originariamente inviato da artorius
    suppongo perche tu non fai un submit....

    Mi sa che non ti è molto chiaro come funziona il tutto:

    Ajax.Response invia una richiesta ajax all'url che gli passi, quindi, dato che gli passi "boxes/register_user.php?action=avanti2&action2=registram i" pa tua pagina PHP riceve

    $_GET = array("action" => "avanti2", "action2" => "registrami");

    e basta, devi ottenere e serializzare il form in una serie di parametri per otterere qualcosa.

    Codice PHP:
    new Ajax.Request(url_action, {method :'get'parameters : $('reg').serialize(true), onComplete:showResponse} ); 
    ti ricordo che "reg" è l'id della form che usi.
    Ti ringrazio tanto, sto iniziando con Ajax e non mi era ancora capitato di usarlo per i form.
    Quindi se cambio il method, immagino che possa usarlo anche con POST giusto?

  4. #4
    esatto, il modi in cui passi i dati dipende dal method.
    parameters sono i dati passato sotto forma di JSON (per intenderci {'action' : 'avanti2', 'action2' : 'registrami'} )
    Poi ci sono altri eventi oltre oncomplete (onSuccess, onFail, onAbort (o cancel, non ricordo), ed altre opzioni, che puoi trovare nelle API di prototypejs

  5. #5
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Scusami, ma è normale che con la funzione che mi hai consigliato non passi gli input type="files"?
    Nel form ho aggiunto l'enctype.
    Passa tutti i campi ma non riesco a recuperare il nome dell'immagine,
    che mi dici a proposito?

    Con php di solito recupero i file dal form cosi: $_FILES["image", "name"]

  6. #6
    che in Ajax non si può fare l'upload di un file.

  7. #7
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Quindi cosa mi consiglieresti?

  8. #8
    il modo classico per caricare un file in modo Asincrono è usare un iframe che apre una pagina con la form e che serve a caricare il file, così si aggiorna solo l'iFrame e non tutta la pagina.

  9. #9
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    mmm, brutta roba cavoli!! Ma è una limitazione di Ajax?!?
    JQuery lo fa? ma ora è un po tardi per cambiare il tutto...

  10. #10
    No, jQuery NON lo fa. Inviare un file in maniera Asincrona con XMLHttpRequest non si può fare. C'è un metodo per farlo con Mozilla/Firefox, e SOLO Mozilla/Firefox, ma richiede di far girare il processo del Browser con particolari privilegi amministrativi e non tutti posso farlo.

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.