Gestione date per preventivo

Daniele Rapinesi

Utente Attivo
7 Gen 2014
60
0
0
Ciao a tutti

Se su un sito devo inserire un "calcola prezzo" in base ad una data - tipo lascio l'auto il 10 gennaio alle 10,00 e la riprendo il 12 gennaio alle 17,00 - come posso creare un form con inserimento data inizio, data fine e calcolo del prezzo ?

GRazie a tutti per i suggerimenti ....
 

edin

Utente Attivo
7 Nov 2013
92
0
6
www.edinweb.altervista.org
Nel Form che crei inserisci due campi di tipo input ed a ssoci aciascun elemento un datapiker(calendario) che ti fa selezionare le date.
Per il calcolo del prezzo hai bisogno di un codice lato server che faccia il calcolo del prezzo.
Per esempio hai nel db la tariffa oraria di xx euro, in base al rang di ore trascorse fai il calcolo...
Poi altro fattore,per i giorni festivi bisogna capire se hanno la stessa tariffa oraria etc


Puoi fare questo con una chiamata ajax che ti fa visualizzare il risutato del calcolo all'interno del form.
 

Daniele Rapinesi

Utente Attivo
7 Gen 2014
60
0
0
ok grazie.
La parte del form è chiara.
Più complicata mi sembra la parte del codice lato server: inserendo le date ho un risultato di quanti giorni/ore dura la sosta giusto? Parto da li per fare il calcolo ?
Ok, stasera comincio a studiare e poi ti tengo informato....
Grazie ancora !
 

Daniele Rapinesi

Utente Attivo
7 Gen 2014
60
0
0
Ok, con date picker creo i campi per l'inserimento della data di arrivo e di ritiro. Ora come faccio a dirgli di fare la sottrazione tra le due date e restituirmi il valore in giorni ? Trovato quello, in php, con la funzione if dovrebbe essere semplice far stampare il preventivo( if valore=1 echo 10€, ecc).
Dovreste solo dirmi come fare l'operazione tra le date ...... Grazie!!!!
 

Daniele Rapinesi

Utente Attivo
7 Gen 2014
60
0
0

grazie dell'aiuto, ma non riesco a fare quello che voglio:
una volta creato i datepicker di inizio e fine soggiorno, vorrei ottenere un valore in giorni per poter elaborare un preventivo (es. la differenza fra le date è di 2 giorni, quindi in php gli dico "if giorni=2" echo 20€ ... come posso dire a php che la differenza fra le date inserite è 2??? .... sto diventando matto !!!!
Aiutami ti prego !!

Grazieeee
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Ciao, puoi provare così:

PHP:
$data1 = '2014-01-05 11:30'; #> Ipotetica data di partenza del datepicker
$data2 = '2014-01-07 11:30'; #> Ipotetica data di fine del datepicker

$giorni = intval((strtotime($data1)-strtotime($data2))/86400);

#> Il tuo preventivo sono 10€ al giorno ? Then..
echo "Il costo per il periodo indicato è di €", (10*$giorni), " .";


Sostanzialmente ho convertito in timestamp le due date, le ho sottratte fra di loro e poi dividendole per 86400 (il numero di secondi che costituisce una giornata) ottengo il numero di giorni che intercorre tra le due.

Occhio che se la differenza è meno di una giornata il calcolo $giorni ti dà zero, comunque con qualche altro calcolo puoi ottenere ore, minuti e secondi se ti occorrono.
 

Daniele Rapinesi

Utente Attivo
7 Gen 2014
60
0
0
Grazie Flameseeker per la risposta,
il tuo suggerimento è corretto e funziona, ma il problema è:

-come faccio a far si che quando l'utente digita la data in datepicker quel valore va a finire dentro $data1 ??

E' questa la cosa che mi fa impazzire !!! qio funziona tutto perche tu hai messo il valore in $data1 e $data2, ma come ce lo mando li quel dato ??

... dai ragazzi un'ultimo sforzo !!!!!

Comunque grazie ancora !!

$data1 = '2014-01-05 11:30'; #> Ipotetica data di partenza del datepicker
$data2 = '2014-01-07 11:30'; #> Ipotetica data di fine del datepicker
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Potresti usare ajax per passare il dato in post allo script e poi stampare il risultato in un contenitore a scelta.
 

Daniele Rapinesi

Utente Attivo
7 Gen 2014
60
0
0
uhmmm .... ajax non lo conosco proprio .... vado a cercare di capire come funziona girando un po in rete .....
Grazie lo stesso !!!
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
Grazie Flameseeker per la risposta,
il tuo suggerimento è corretto e funziona, ma il problema è:

-come faccio a far si che quando l'utente digita la data in datepicker quel valore va a finire dentro $data1 ??

E' questa la cosa che mi fa impazzire !!! qio funziona tutto perche tu hai messo il valore in $data1 e $data2, ma come ce lo mando li quel dato ??

... dai ragazzi un'ultimo sforzo !!!!!

Comunque grazie ancora !!

$data1 = '2014-01-05 11:30'; #> Ipotetica data di partenza del datepicker
$data2 = '2014-01-07 11:30'; #> Ipotetica data di fine del datepicker


puoi postarmi il codice del datepicker?
perchè o ho già una cosa del genere e credo che il tuo problema dipenda da come imposti il codice del datapicker

p.s non il javasscript ma proprio il codice hphp/html con cui richiami js
 
Ultima modifica:

Daniele Rapinesi

Utente Attivo
7 Gen 2014
60
0
0
il tuo suggerimento funziona, ma come faccio a convertire le date inserite con il datepicker in $date1 e $date2 ???
io ajax non lo conosco. Non c'è un metodo piu facile - tipo inserisco data, la passo a php e faccio le operazioni ???

... sicuramente c'è ci sono tantissimi siti che gestiscono prenotazioni in base alle date, ma dal sorgente non riesco a capire come avviene il passaggio !!!

GRAZIE!!!
 

edin

Utente Attivo
7 Nov 2013
92
0
6
www.edinweb.altervista.org
Un' esempio di chiamata ajax per il tuo caso potrebbe essere questo:

PHP:
<script type="text/javascript">
function inviaForm()
{
var data_da=$("#data_da").val();
var data_a=$("#data_a").val();
$.ajax({
    type:'POST',
    url:'calcolo_preventivo.php',
    data:'data_da='+data_da+'&data_a='+data_a,
    success: function(response){
      $("#output").html(response);
      }
    });
}
</script>

data_da e data_a sono i valori delle date selezionate nei due campi.

Nel form inserisci un bottone che chiama la funzione javascript inviaform() che ti invia con ajax i dati alla pagina php.

Nella pagina php recuperi i valori in due variabili:
PHP:
$data_da=$_POST['data_da'];
$data_a=$_POST['data_a'];


http://www.edinweb.altervista.org
 

Daniele Rapinesi

Utente Attivo
7 Gen 2014
60
0
0
Questo è un form che ho creato con le date di arrivo e partenza:


<form name="differenza_date" method="post" action="preventivo.php">
<table>
<tr>
<td>inserire data iniziale:</td>
<td>
<select name="giornoinizio">
<option>giorno</option>
<option value="1" > 1 </option>
<option value="2" > 2 </option>
<option value="3" > 3 </option>
<option value="4" > 4 </option>
<option value="5" > 5 </option>
<option value="6" > 6 </option>
<option value="7" selected="selected"> 7 </option>
<option value="8" > 8 </option>
<option value="9" > 9 </option>
<option value="10" > 10 </option>
<option value="11" > 11 </option>
<option value="12" > 12 </option>
<option value="13" > 13 </option>
<option value="14" > 14 </option>
<option value="15" > 15 </option>
<option value="16" > 16 </option>
<option value="17" > 17 </option>
<option value="18" > 18 </option>
<option value="19" > 19 </option>
<option value="20" > 20 </option>
<option value="21" > 21 </option>
<option value="22" > 22 </option>
<option value="23" > 23 </option>
<option value="24" > 24 </option>
<option value="25" > 25 </option>
<option value="26" > 26 </option>
<option value="27" > 27 </option>
<option value="28" > 28 </option>
<option value="29" > 29 </option>
<option value="30" > 30 </option>
<option value="31" > 31 </option>
</select>
</td><td>
<select name="meseinizio">
<option>mese</option>
<option value="1" selected="selected">Gennaio</option>
<option value="2" >Febbraio</option>
<option value="3" >Marzo</option>
<option value="4" >Aprile</option>
<option value="5" >Maggio</option>
<option value="6" >Giugno</option>
<option value="7" >Luglio</option>
<option value="8" >Agosto</option>
<option value="9" >Settembre</option>
<option value="10" >Ottobre</option>
<option value="11" >Novembre</option>
<option value="12" >Dicembre</option>
</select>
</td><td>
<select name="annoinizio">
<option>Anno</option>
<option value="2013" > 2013 </option>
<option value="2014" selected="selected"> 2014 </option>
<option value="2015" > 2015 </option>
<option value="2016" > 2016 </option>
<option value="2017" > 2017 </option>
<option value="2018" > 2018 </option>
<option value="2019" > 2019 </option>
<option value="2020" > 2020 </option>
<option value="2021" > 2021 </option>
<option value="2022" > 2022 </option>
<option value="2023" > 2023 </option>
<option value="2024" > 2024 </option>
<option value="2025" > 2025 </option>
<option value="2026" > 2026 </option>
<option value="2027" > 2027 </option>
<option value="2028" > 2028 </option>
<option value="2029" > 2029 </option>
<option value="2030" > 2030 </option>
<option value="2031" > 2031 </option>
<option value="2032" > 2032 </option>
<option value="2033" > 2033 </option>
<option value="2034" > 2034 </option>
<option value="2035" > 2035 </option>
<option value="2036" > 2036 </option>
<option value="2037" > 2037 </option>
<option value="2038" > 2038 </option>
<option value="2039" > 2039 </option>
<option value="2040" > 2040 </option>
<option value="2041" > 2041 </option>
<option value="2042" > 2042 </option>
<option value="2043" > 2043 </option>
</select>

</td>
</tr><tr>
<td>inserire data finale:</td>
<td>
<select name="giornofine">
<option>giorno</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>

</select>
</td><td>
<select name="mesefine">
<option>mese</option>
<option value="1">Gennaio</option>
<option value="2">Febbraio</option>
<option value="3">Marzo</option>
<option value="4">Aprile</option>
<option value="5">Maggio</option>
<option value="6">Giugno</option>
<option value="7">Luglio</option>
<option value="8">Agosto</option>
<option value="9">Settembre</option>
<option value="10">Ottobre</option>
<option value="11">Novembre</option>
<option value="12">Dicembre</option>
</select>
</td><td>
<select name="annofine">
<option>Anno</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
<option value="2021">2021</option>
<option value="2022">2022</option>
<option value="2023">2023</option>
<option value="2024">2024</option>
<option value="2025">2025</option>
<option value="2026">2026</option>
<option value="2027">2027</option>
<option value="2028">2028</option>
<option value="2029">2029</option>
<option value="2030">2030</option>
<option value="2031">2031</option>
<option value="2032">2032</option>
<option value="2033">2033</option>
<option value="2034">2034</option>
<option value="2035">2035</option>
<option value="2036">2036</option>
<option value="2037">2037</option>
<option value="2038">2038</option>
<option value="2039">2039</option>
<option value="2040">2040</option>
<option value="2041">2041</option>
<option value="2042">2042</option>
<option value="2043">2043</option>
</select>
</td>
</tr><tr>
<td><input type="submit" name="differenza_date" value="Calcola differenza tra date" style="padding:0 1px;" /></td>
</tr>
</table>
</form>

Gli ho detto di passare i dati al file preventivo.php, che riporto sotto. Qui sto lavorando per inviarmi le date via email per vedere il formato di arrivo, ma se riesci a moficicare direttamente questo codice per far uscire il risultato a video va benissimo !!

<?PHP
// Processo di recupero dei dati
$giornoinizio = $_POST['giornoinizio'];
$meseinizio = $_POST['meseinizio'];
$annoinizio = $_POST['annoinizio'];
$giornofine = $_POST['giornofine'];
$mesefine = $_POST['mesefine'];
$annofine = $_POST['annofine'];

// [Destinatario, mittente, ecc]
$mail_to = "[email protected]";
$mail_subject = "Prova preventivo";

// Intestazioni HTML
$mail_in_html = "MIME-Version: 1.0\r\n";
$mail_in_html .= "Content-type: text/html; charset=utf-8\r\n";
$mail_in_html .= "From: <$mail_from>";
// Processo di invio
if (mail($mail_to, $mail_subject, $mail_body, $mail_in_html))
{
print "Messaggio inviato con successo!";
}
else
{
print "Errore";
// le parentesi devono essere tante quante il numero dei campi inseriti all'inizio
}
?>
 

Daniele Rapinesi

Utente Attivo
7 Gen 2014
60
0
0
PERFETTO !!!!
Ci sono riuscito:
ho creato il fila perl'immissione della data (che posto qui sotto) e quello per gestire il risultato (che posto di seguito all'altro)

<form method="post" action="preventivo.php">
<table width="41%" cellspacing="2">
<tr>
<td width="40%">Data di consegna</td>
<td width="60%"><input name="data1" type="text" placeholder="2014-01-01"></td>
</tr>
<tr>
<td>Data di ritiro</td>
<td><input name="data2" type="text" placeholder="2014-01-01"></td>
</tr>
<tr>
<td><input type="submit" name="submit" id="submit" value="Invia"></td>
</tr>
</table>

</form>

e questo è preventivo.php


<?php

$data1 = $_POST['data1'];
$data2 = $_POST['data2'];


$giorni = intval((strtotime($data2)-strtotime($data1))/86400);

echo "Il costo per il periodo indicato è di €", (5*$giorni), " .";?>


Grazie ragazzi......ma ora ho un'altra domanda - non so se devo aprire un nuovo post -

Se voglio cambiare il colore e lo sfondo del pulsante "invia"....come faccio ?
Sicuramente è semplice, ma mi sono spremuto per ottenere il risultato desiderato e sono scarico !!!!
 
Discussioni simili
Autore Titolo Forum Risposte Data
A attributo "min" per input gestione date PHP 8
L problema gestione date PHP 11
S Gestione delle date PHP 1
S Gestione range di date Classic ASP 0
A Gestione delle date in formato timestamp Snippet PHP 0
A Gestione array multidimensionale PHP 6
andreas88 Gestione Profilo OnlyFans Leggi, Normative e Fisco 0
A Creazione cookie e gestione accessi PHP 0
B form gestione input PHP 2
sbolde91 Consiglio gestione Hosting Hosting 2
E Gestione profilo utente tramite Form PHP 3
S cerco esperto gestione ecommerce Offerte e Richieste di Lavoro e/o Collaborazione 0
P Curiosità su grandi aziende e la gestione delle grafiche. Discussioni Varie 1
M Consiglio sulla gestione di Gerarchie Database 0
L Gestione DB ASP.NET 2
L Consiglio SEO gestione dominio + free hosting SEO e Posizionamento 6
avalon95 [WordPress] Gestione database annunci WordPress 0
G [PHP] gestione mouse PHP 2
B Gestione Prenotazioni con Mysql Database 21
D CREAZIONE E GESTIONE SITO E-COMMERCE Offerte e Richieste di Lavoro e/o Collaborazione 2
P (Cerco) Collaboratori per gestione social media Offerte e Richieste di Lavoro e/o Collaborazione 5
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
brasoft2019 [PHP] Sistema di gestione presenze PHP 29
W Preventivo gestione ecommerce Discussioni Varie 1
E Cerco partner / socio per gestione sito di annunci incontri Offerte e Richieste di Lavoro e/o Collaborazione 0
K e-commerce per distribuzione e dettaglio con gestione magazzino E-Commerce 0
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
Jonn [WordPress] Gestione categorie e tags per sito eventi WordPress 2
felino Gestione dispositivi e Altri dispositivi Windows e Software 4
D Software per gestione account facebook? Social Media Marketing 1
D Cero Software Facebook gestione account Vendere e Acquistare pubblicita' online 0
M Offro servizio Incremento Follower e Gestione Profili Istagram Offerte e Richieste di Lavoro e/o Collaborazione 0
S elementi statistici - Matrice e Gestione Array PHP o Javascript Javascript 0
J [offro] hosting / installazione certificati ssl / gestione server Offerte e Richieste di Lavoro e/o Collaborazione 0
F [PHP] gestione meteo manuale per un gioco di ruolo PHP 1
bianca_dimulescu Gestione tabella e MySQL PHP 4
T Servizio gestione pagina Instagram Offerte e Richieste di Lavoro e/o Collaborazione 0
G Gestione e/o vendita hosting come libero professionista Leggi, Normative e Fisco 4
MatMac System [PHP] Gestione dinamica select-option PHP 3
xone [Vendo] Script gestionale php-mysql gestione pratiche Altri Annunci 0
S [PHP] Gestione coupon PHP 3
lxella [PHP] Aree riservate e gestione utenti PHP 1
D Gestione punteggi php PHP 1
B Cercasi socio per gestione sito web Offerte e Richieste di Lavoro e/o Collaborazione 0
G gestione pagina facebook Social Media Marketing 0
Cavalinho08 [Offro gestione pagine instagram, prezzo bassissimo] Annunci servizi di Social Media Marketing 3
D [VENDO] Gestione account instagram Annunci servizi di Social Media Marketing 2
N [VENDO] Gestione pagine FB Annunci servizi di Social Media Marketing 2
ientii [PHP] Gestione CheckBox PHP 1
W Consiglio su gestione di un form con XMLHttpRequest Ajax 0

Discussioni simili