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

    un po' GET e un po' POST

    Ciao a tutti,
    questo è il mio primo post qua.

    Qualcuno mi sa dire se è possibile spedire i dati di un form in parte via GET, e in parte via POST?

    Voglio dire, ci sono alcuni parametri del form che mi piacerebbe gli utenti vedessero nella loro barra degli indirizzi, e altri che no.

    C'è modo di farlo? magari mediante Javascript?

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    No non si può fare se non per invii separati.
    E comunque dubito che le persone guardino l'url e ne sappiano interpretare i dati a meno che non siano del "mestiere", anzi l'utilizzo del GET è abbastanza sconsigliato se i dati vanno a finire come dire verso applicazioni in cui possono arrecare danni, penso ai database ad esempio.
    Quindi pensaci bene anche in funzione dei dati che vuoi inviare via GET.

  3. #3
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924

    Re: un po' GET e un po' POST

    Originariamente inviato da ororo.munroe
    Ciao a tutti,
    questo è il mio primo post qua.

    Qualcuno mi sa dire se è possibile spedire i dati di un form in parte via GET, e in parte via POST?


    Grazie!

    il modo ci sarebbe anche (usando solo per comodità jquery)

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title></title>
            
            
            <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"> </script>
            
            <script type="text/javascript">
            // <![CDATA[
            
            var sendGetPars = function(form) {
                
                var action          = form.action,
                    getMethodFields = $('.get', $(form)),
                    len             = getMethodFields.length;
                    
                if (len > 0) {
                    action += '?';  
                    getMethodFields.each(function(j) {
                        var i   = $(this); 
                        action += [i.attr('name'), i.val()].join('=');
                        if (j < len - 1) action += '&';  
                    });
                
                }
                form.action = action;
                return true;
            }
            
            // ]]>
            </script>
        </head>
    
    <body>
    
    
        <form action="formsend.php" method="POST" onsubmit="return sendGetPars(this)">
            
            <input type="text" name="i1" value="1" class="get" />
            <input type="text" name="i2" value="2" />
            <input type="text" name="i3" value="3" class="get" />
            <input type="text" name="i4" value="4" class="get" />
            <input type="text" name="i5" value="5" />
            
            <input type="submit" />
            
        
        </form>
    
    </body>
    </html>
    basta mettere una classe (es. get) sui campi da passare anche in get
    lato server però recuperali sempre in post
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  4. #4
    Grazie mille! Provo appena riesco!

    Secondo me alcuni parametri GET possono essere utili all'utente, per esempio il parametro "search=xxxx" oppure "order_by=yyy", può essere direttamente l'utente a settarli dalla riga del'indirizzo.

  5. #5
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Dipende da quello che devi fare, considera che nessun utente legge mai quei valori, tieni anche presente che l'utilizzo di javascript presuppone un'accessibilità non totale dell'applicazione.
    Detto questo ma ne vale davvero la pena? Se sì fallo se no keep it simple

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da Marcolino's
    presente che l'utilizzo di javascript presuppone un'accessibilità non totale dell'applicazione.
    non in questo caso: l'action è già impostata e se lato server continua a leggere i parametri in post non avrà nessun problema di accessibilità.

    Il tutto resta funzionante anche a javascript disattivato.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Hai ragione vaevo dato un occhiata un po' frettolosa allo script, anzi ti dirò che mi piace quel modo di inviare dati.

  8. #8
    @fcaldera: in verità, il tuo script non mi funziona.
    In sostanza, usando quello script, è uguale a fare una chiamata POST tradizionale.

    Il problema temo che sia form.action: non è una stringa, bensì uno [object HTMLInputElement], e quindi fare la concatenazione [object HTMLInputElement]?search=xxx non porta da nessuna parte.

    (Ho testato lo script su Firefox 3.5.9)

  9. #9
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da ororo.munroe
    @fcaldera: in verità, il tuo script non mi funziona.
    In sostanza, usando quello script, è uguale a fare una chiamata POST tradizionale.

    Il problema temo che sia form.action: non è una stringa, bensì uno [object HTMLInputElement], e quindi fare la concatenazione [object HTMLInputElement]?search=xxx non porta da nessuna parte.

    (Ho testato lo script su Firefox 3.5.9)
    il codice così come te l'ho postato l'ho provato e funziona
    non è che nel tuo caso hai un conflitto di variabili o hai un input con name="action" ?
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  10. #10
    o hai un input con name="action"
    Ah sì ecco il problema!!!!
    grazie mille

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.