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

    Datepicker e invio form, aiuto!

    Ciao a tutti,
    devo creare un form per il nostro booking online che passa informazione a una pagina esterna.

    I parametri trasmissibili da url sono rappresentati da data arrivo, data partenza e numero di persone: il formato delle date è gg/mm/aaaa (se queste sono passate, incoerenti od omesse, viene impostata la data di oggi), mentre il numero di persone deve essere specificato nell'ordine in cui compaiono le combobox, separati dal "_" I parametri si chiamano "dataInizio", "dataFine" e "persone", come indicato nel seguente link di esempio: https://www.ericsoft.biz/bookingengi...&persone=2_1_3
    Per aprire il link nella lingua desiderata, aggiungere all'url il parametro &lingua =en oppure ....&lingua=fr ,....&lingua=de, ....&lingua=nl, ....&lingua=es ecc.

    ho fatto un form con i seguenti campi:
    2 campi data con selezione usando datepicker jquery, da... a...
    1 campo numero persone con menù a tendina 1,2,3 o 4.

    codice:
    <FORM method=get action=""> 
    Dal: <INPUT id=dataInizio>
    Al: <INPUT id=dataFine>
    Persone: <select id=persone> 
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    </select> 
    <INPUT value=Go type=submit>
    in Head ho messo il datepicker impostato come mi risultava comodo
    codice:
    <LINK rel=stylesheet type=text/css href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/humanity/jquery-ui.css">
    <SCRIPT src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></SCRIPT> <SCRIPT src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></SCRIPT> <SCRIPT> 
    $(document).ready(function(){ 	            
    $('#dataInizio').datepicker({ dateFormat: 'dd/mm/yy', changeMonth: true, changeYear: true, yearRange: '-0:+1' });               
    $('#dataFine').datepicker({ dateFormat: 'dd/mm/yy', changeMonth: true, changeYear: true, yearRange: '-0:+1', defaultDate: +7 });
     	        });   
    </SCRIPT>
    nell'url però devo aggiungere l'id dell'hotel (che è fisso) e la lingua (anch'essa fissa)
    ho pensato di fare così
    codice:
    <FORM method=get action="https://www.ericsoft.biz/bookingengine/reservation.aspx"> 
    <input type=hidden name=id value=c0xnyzTDjP0&3d>
    <input type=hidden name=lingua value=en>
    quello che però ottengo è questo link
    https://www.ericsoft.biz/bookingengi...a=en&persone=1

    problemi:
    id sbagliato, infatti è c0xnyzTDjP0%263d invece che c0xnyzTDjP0&3d (forse la & crea problemi)
    non vengono passati dataInizio e dataFine

    Purtroppo conosco l'html da qualche esperienza un paio di anni fa, ora faccio tutt'altro e probabilmete faccio errori banali...
    grazie a tutti per le risposte

    Dan

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    ciao,

    la & in querystring è un separatore di variabile.
    il browser codifica automaticamente quello che arriva da un input.
    l'id in arrivo dovresti decodificarlo o fare un replace.

    il data picker funziona?
    metti name oltre ad id nei campi data
    (spedisci il name, l'id ti serve localmente nella pagina)
    sicuramente ti verrà codificato anche / della data

    get non è un metodo intelligente per ricevere dati che interagiscano col database,
    a meno che non sia solo per consultarlo e in caso di dati in arrivo molto puliti.
    meglio post. sotto tutti i punti di vista

  3. #3
    grazie!
    ho messo un po' a posto il form in effetti dava qualche problema

    codice:
    <FORM method=get name=form action="https://www.ericsoft.biz/bookingengine/reservation.aspx" id=form>
    <input type=hidden name=lingua id=lingua value=en>
    <input type=hidden name=id id=id value=c0xnyzTDjP0%3d>
    Dal: <INPUT id=dataInizio name=dataInizio> 
    Al: <INPUT id=dataFine name=dataFine>
    Persone: <SELECT id=persone name=persone><OPTION selected>1</OPTION><OPTION>2</OPTION><OPTION>3</OPTION><OPTION>4</OPTION></SELECT>
    <INPUT value=Go type=submit>
    devo ora fare il replace del % in ID e dei / nelle date.
    penso che il codice sia questo

    codice:
    dataInizio = dataInizio.replace(/%2F/g,"/" ); 
    dataFine = dataInizio.replace(/%2F/g,"/" ); 
    id = id.replace(/%%26/g, "%");
    giusto fin qui il ragionamento?

    Ora dovrei fare una funzione in Head che mi prende i valori del form e mi faccia il replace?
    codice:
      
    function processForm(form) {    
     var dataInizio = form.dataInizio.value;     
     var dataFine = form.dataFine.value;    
     var id = form.id.value;    
     var persone = form.persone.value; 
    
     dataInizio = dataInizio.replace(/%2F/g,"/" );
     dataFine = dataInizio.replace(/%2F/g,"/" );
     id = id.replace(/%%26/g, "%");
    
      };
    però c'è qualcosa che maca...
    come faccio a inviare la querystring corretta all'invio del form?

  4. #4
    cioè, mi riesco a costruire la querystring in quella function e poi sul tasto submit metterci onClick e richiamare la funzione che dovrebbe dare come risultato il link giusto?
    Se si, qui proprio dovreste aiutarmi...sono abbastanza niubbo, oggi ho perso qualche ora di lavoro a cercare su internet ma non riesco ad associare gli esempi che ho trovato al mio caso.

    Vi ringrazio in anticipo se riuscite a darmi un pezzettino di codiche pronto che mi funzioni

  5. #5
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    no guarda... così viene fuori un macello di tutto e di più = tanto lavoro per nulla

    passa ad una lavorazione post, per cominciare
    lavori tutto lato server e sei più sicuro di governare ogni operazione senza replece e menate varie

    ricorda di chiudere tra virgolette i valori degli input, non farlo ti espone ad errori di lavorazione

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.