et felt hvor man kan skrive et tidspunkt (ikke noget problem for mig at tilføje) men jeg skal så samtidig have den til at tjække (når feltet hvor tidspunktet skal skrives forlades) at den aktuelle tid er eks. 14:27 og tidspunktet som skrives i feltet må skal tidligst være AKTUEL tid + 30 min. altså i dette tilfælde må det klokkeslet der indtastes tidligst være 14:57
hvis det evt. kan laves på en smartere måde høre jeg også gerne.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
if (time()+30*60<=mktime($time,$minu)) { echo \"der er mere end 30 min til det tidspunkt!!<br>\"; } else { echo \"der er mindre end 30 min til det tidspunkt!<br>\"; }
Den ericjakobsen kom med tjekker om det tidspunkt der er skrevet er mere eller mindre end 30 minutter efter man har submittet formen. I hans tilfælde skal du have 2 felter, \"time\" og \"minu\", i din form. Det er ikke nødvendigt med en loadtime.
Af følgende \"(når feltet hvor tidspunktet skal skrives forlades)\", har du allerede slået fast at det skal ske på klienten, dvs du skal have gang i noget JavaScript kode på klientsiden, altså ikke et decideret PHP spørgsmål.
Javascript, nemlig. Man kan bruge PHP til at skrive værdien af mindst tilladte tid i en javascript variable, og når feltet forlades i formen bliver man nødt til at kontrollere om det indtastede tidspunkt er større end det mindst tilladte. Hvis ikke kan man lave en alert-box.
Men hvis det skal laves i ren PHP, bliver man nødt til først at verificere, når formen bliver submittet.
okay så udskriver den tiden i felterne (brugte halnet\'s sidste forslag)
men hvordan får jeg den til at tjække om brugeren evt. har ændret i felterne (der har med tiden at gøre) ?? hvis det skal laves i javascript er så er der 200 point til vedkommende som kan give et eks. på dette... jeg opretter så bare et nyt spm. i javascript kategorien, hvis der er en her der kan komme med et eks. på det...
--- cut --- som det fremgår af formen så har jeg allerede noget javascript som tjækker de andre felter... dete stykke javascript ser sådant her ud (postes fordi det kode haløj som skal ind mht. tid sikkert skal ind heri)?? --- java kode cut ---- <script language=\"Javascript\"> function check(f) { if (f.navn.value==\"\") { alert(\"Du skal skrive dit navn\"); f.navn.focus(); return false; } if (f.vej.value==\"\") { alert(\"Du skal skrive din adresse\"); f.vej.focus(); return false; } if (f.post.value==\"\") { alert(\"Du skal skrive dit post nr.\"); f.post.focus(); return false; } if (f.by.value==\"\") { alert(\"Du skal skrive navnet på den by hvor du bor\"); f.by.focus(); return false; } if (f.tlf.value==\"\") { alert(\"Du skal skrive dit Telefon nr.\"); f.tlf.focus(); return false; } if (!f.email.value.match(/^[^\\.]?[\\w\\.-]+@[^\\.]?[\\w\\.-]+\\.[A-Z]{2,3}$/i)) { alert(\"Du skal skrive din e-m@il adresse\"); f.email.focus(); return false; } if (f.betal.value==\"\") { alert(\"Du skal vælge en betalings metode\"); f.betal.focus(); return false; } if (f.hurtig.value==\"\") { alert(\"Du skal vælge Leverings tidspungt\"); return false; } return true; } </script> --- cut ---
Altså tjekke om det tidspunkt hvor formen submittes ligger min. 30 minutter før det tidspunkt der står i formen.
Eks.
d = new Date(); t = d.getHours(); m = d.getMinutes(); s = d.getSeconds(); ld = f.tidsfelt.value.split(\':\'); lt = ld[0]; lm = ld[1]; ls = ld[2]; if (lt < t) { alert(\'Det indtastede tidspunkt er tidligere i dag!\'); return false; if (lt = t) { if (lm < m) { alert(\'Det indtastede tidspunkt er tidligere i dag!\'); return false; } else if ((100 * m + 3000 + s) > (100 * lm + ls)){ alert(\'Det indtastede tidspunkt er inden for 30 minutter\'); return false; } }
I ovenstående er det forudsat at tidspunktet er på formen t:m:s
Jeg håber det er noget af det rigtige ellers må du lige uddybe det lidt
Det er nok en meget god ide at lave alt validering på client-siden. Hvis man laver noget af det server-side og resten client-side, så støder man ind i et problem, hvis serveren ok klienten ikke kører samme tidszone. Eller hvis klients ur ganske simpelt går forkert....
Så javascript it is....
Jeg er desværre bare ikke hård nok til JS til at lave det.
<script language=\"Javascript\"> function check(f) { if (f.navn.value==\"\") { alert(\"Du skal skrive dit navn\"); f.navn.focus(); return false; } if (f.vej.value==\"\") { alert(\"Du skal skrive din adresse\"); f.vej.focus(); return false; } if (f.post.value==\"\") { alert(\"Du skal skrive dit post nr.\"); f.post.focus(); return false; } if (f.by.value==\"\") { alert(\"Du skal skrive navnet på den by hvor du bor\"); f.by.focus(); return false; } if (f.tlf.value==\"\") { alert(\"Du skal skrive dit Telefon nr.\"); f.tlf.focus(); return false; } if (!f.email.value.match(/^[^\\.]?[\\w\\.-]+@[^\\.]?[\\w\\.-]+\\.[A-Z]{2,3}$/i)) { alert(\"Du skal skrive din e-m@il adresse\"); f.email.focus(); return false; } if (f.betal.value==\"\") { alert(\"Du skal vælge en betalings metode\"); f.betal.focus(); return false; } if (f.hurtig.value==\"\") { alert(\"Du skal vælge Leverings tidspungt\"); return false; }
d = new Date(); t = d.getHours(); m = d.getMinutes(); regExp = \'^[0-9]{1,2}$\'; lt = f.time.value; if (lt.search(regExp) == -1) { alert(\'Timerne skal angives som et eller to cifre\'); return false; } lm = f.minu.value; if (lm.search(regExp) == -1) { alert(\'Minutterne skal angives som et eller to cifre\'); return false; } if (lt < t) { alert(\'Det indtastede tidspunkt er tidligere i dag!\'); return false; } if (lt == t) { if (lm < m) { alert(\'Det indtastede tidspunkt er tidligere i dag!\'); return false; } else if ((m + 30) > lm){ alert(\'Det indtastede tidspunkt er inden for 30 minutter\'); return false; } } if (lt > t) { if ((60 - parseInt(m) + parseInt(lm)) < 30) { alert(\'Det indtastede tidspunkt er inden for 30 minutter\'); return false; } } return true; } </script>
Ovenstående er dit eget script plus en del der tjekker om indholdet i time og minu hver især er et eller to cifre. Derefter tester scriptet om det angivne tidspunkt allerede er passeret. Hvis det ikke er tilfældet tjekker scriptet om tidspunktet er inden for 30 min. Scriptet skal dog omskrives hvis det er muligt at angive en bestilling med levering en anden dato!
regExp = \'^[0-9]{1,2}$\'; lt = f.time.value; if (lt.search(regExp) == -1) { alert(\'Timerne skal angives som et eller to cifre\'); return false; } lm = f.minu.value; if (lm.search(regExp) == -1) { alert(\'Minutterne skal angives som et eller to cifre\'); return false; }
med
regExp = \'^[0-1][0-9]$|^[0-9]$\'; lt = f.time.value; if (lt.search(regExp) == -1) { alert(\'Timerne skal angives som et eller to cifre\'); return false; } regExp = \'^[0-6][0-9]$|^[0-9]$\'; lm = f.minu.value; if (lm.search(regExp) == -1) { alert(\'Minutterne skal angives som et eller to cifre\'); return false; }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.