Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Ajax post form

  1. #1
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258

    Ajax post form

    Ho una pagina dalla quale compilo dei campi e passo dei valori in ajax in un'altta pagina.

    Non so come fare però a passare più di un valore;

    in questo caso passo alla pagina MailAjax.asp solo il valore nome:
    codice:
    var url = "MailAjax.asp"; 
        var params='nome='+$F("nome");
    
    
        new Ajax.Request(url, {onComplete:showResponse, onException:showException, onFailure:showException, asynchronous:true, method:"post", evalScripts:false, postBody:params});
    se volessi passare anche altri 2 valori ad esempio email e messaggio?

    ho provato in questo modo ma non va:
    codice:
    var params='nome='+$F("nome") && email ='+$F("email") && messaggio='+$F("messaggio") ;

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    ho provato in questo modo ma non va:
    var params='nome='+$F("nome") && email ='+$F("email") && messaggio='+$F("messaggio") ;
    Non va perché hai fatto un po' di pasticci.

    Le varie coppie nome/valore vanno concatenate tra loro col carattere & (non &&). Inoltre, ciò che devi ottenere è una stringa. Quel && email dovrebbe stare dentro gli apici. Per concatenare più parti tra loro, in modo da ottenere una stringa, devi usare l'operatore + (più). Guarda bene ciò che hai scritto.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Non va perché hai fatto un po' di pasticci.

    Le varie coppie nome/valore vanno concatenate tra loro col carattere & (non &&). Inoltre, ciò che devi ottenere è una stringa. Quel && email dovrebbe stare dentro gli apici. Per concatenare più parti tra loro, in modo da ottenere una stringa, devi usare l'operatore + (più). Guarda bene ciò che hai scritto.
    perdonami, non sono praticissimo di javascript (non è il mio linguaggio), e non è che sia distratto, il fatto è che sto andando completamente a tentoni.

    inserendo & al posto della && non mi passa niente invece in questo modo:

    codice:
    var params='nome='+$F("nome") && email ='+$F("email") && messaggio='+$F("messaggio") ;
    mi restituisce solo la variabile messaggio.

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    il fatto è che sto andando completamente a tentoni
    Capisco. Io so esattamente come si fa, quindi possiamo fare due cose: o ti posto direttamente io il codice corretto, oppure ti spiego come devi fare per scriverlo tu correttamente sia ora che in futuro.
    Nella seconda ipotesi ti ho già risposto in parte, il fatto è che non mi pare che tu abbia seguito tutte le mie indicazioni. Nel caso ti domando se c'è qualcosa che non ti è chiaro, ed eventualmente, se vuoi che te lo rispieghi in modo più terra terra.

    Le varie coppie nome/valore vanno concatenate tra loro col carattere & (non &&). Inoltre, ciò che devi ottenere è una stringa. Quel && email dovrebbe stare dentro gli apici. Per concatenare più parti tra loro, in modo da ottenere una stringa, devi usare l'operatore + (più).
    Ultima modifica di KillerWorm; 26-07-2015 a 21:12
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    In genere sarei stato propenso per la seconda proposta, quella della spiegazione ma, visto l'urgenza, se possibile, accetterei sia il codice corretto che la spiegazione.

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ok. Partiamo dal fatto che la variabile params deve essere una stringa.

    Supponiamo che la funzione $F("nome") restituisca il valore "Pippo" (che è un valore di tipo stringa).
    Ora definiamo la variabile params con questa sintassi:

    codice:
    var params='nome='+$F("nome");
    Quello che hai fatto è concatenare (col carattere +) la stringa "nome=" con il valore restituito dalla funzione $F("nome"), cioè "Pippo".

    Per cui params sarà una stringa di valore "nome=Pippo".

    Fino a qui ci sei?

    Quello che dovrai ottenere, con più parametri, sarà una stringa (meglio definita come query string) impostata secondo uno schema convenzionale di questo tipo:

    codice:
    "parametro1=valore1&parametro2=valore2&parametro3=valore3"
    Ora, se sei bravo, quanto ti ho indicato dovrebbe essere sufficiente a capire come impostare la tua variabile in questo modo, con diversi altri parametri e valori.

    Quello che dovrai fare è semplicemente concatenare le varie parti, cioè le stringhe (diciamo, statiche) con le stringhe restituite dalle funzioni, facendo però attenzione ad includere il carattere & dove serve. Chiaramente quest'ultimo deve essere inserito sempre come stringa, così come è inserito il carattere = (uguale) tra nome e valore.

    Schematicamente avrai una cosa del genere:

    codice:
    "parametro1="+valore1+"&parametro2="+valore2+"&parametro3="+valore3
    E' possibile che esistano anche altri modi per ottenere lo stesso risultato, ma questo è comunque un punto di partenza per capire come funziona.

    Risultato:
    codice:
    var params='nome='+$F("nome")+'&email='+$F("email")+'&messaggio='+$F("messaggio");
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #7
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Spiegazione perfetta, si poteva anche fare a meno del codice.

    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.