Formular mit aktuellem datum oder letztes eingegebenes datum
steffen
- html
Hallo liebe forum member,
ich habe hier ein Problem an dem ich schon mehrere Tage dran hänge und nicht weiter komme.
Ich habe ein Formular das nicht gross verändert werden darf da die Daten beim abschicken weiter verwendet werden.
2 Sachen sollen möglich sein:
1.
Es soll einerseits möglich sein das Formular mit dem Datum von heute + x Tage und Datum von heute + x Tage + y Tage abzuschicken.
D + x = Abflugdatum nach x Tagen D + x + y = Rüeckflugdatum nach x Tagen
2.
Es soll andererseits möglich sein ein 2tes Datumsfeld manuell auszufüllen und beim abschicken soll er sich Abflug und Rückkehr merken und beim nächsten öffnen der Seite soll er die zuletzt eingegebenen Daten gleich wieder rein schreiben.
Dabei habe ich mehrere Probleme
zu 1.:
funktioniert schon fast... nur noch nicht das update (onchange) wenn man x und y Tage ändert.
zu 2.:
Ich weiss nicht wie ich es umsetzten kann... habe es schon mit 2tem Formular probiert. Dann wird das heutige Datum beim ersten Formular nicht mehr ausgefüllt.
Ich glaube die ideal Lösung wäre wenn man einen save Button einbaut der die Daten speichert und einen load Button der die Daten wieder ausliesst.
Aber vlt. hat jemand eine viel bessere Idee
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title></title>
<script>
/*Current date in form credit:
JavaScript Kit (www.javascriptkit.com)
Over 200+ free scripts here!
*/
var mydate=new Date()
var theyear=mydate.getYear()
if (theyear < 1000)
theyear+=1900
var theday=mydate.getDay()
var themonth=mydate.getMonth()+1
if (themonth<10)
themonth="0"+themonth
var theday=mydate.getDate()
if (theday<10)
theday="0"+theday
</script>
</head>
<body>
<script language="JavaScript" src="calendar_us.js"></script>
<link rel="stylesheet" href="calendar.css">
<FORM id=fareCalSearchForm name=fareCalSearchForm
action=http://www.orbitz.com/App/SubmitFareCalendarSearch?z=e0d2&r=2x method=get
autocomplete="NO"><INPUT type=hidden name=searchMethodHidden> <INPUT type=hidden
value=flex name=source>
<INPUT
class=location id=departCity onblur=textBlur(this);
onfocus=textFocus(this); maxLength=128 size=13 value=NRT
name=slice1:departCity>
<INPUT
class=location id=arriveCity onblur=textBlur(this);
onfocus=textFocus(this); maxLength=128 size=13 value=MUC
name=slice1:arriveCity>
<INPUT size=5 value=5 name=daysfromtoday>days from today
<INPUT class="startDate " id=flexBonuschgStartDate size=15 value="" name=startDate>
<INPUT type=hidden value=true name=useStartCal>
<INPUT size=5 value=14 name=daysafterdeparture>days after departure
<INPUT class="endDate " id=flexBonuschgEndDate size=15 value="" name=endDate>
<INPUT type=hidden value=true name=useEndCal>
<INPUT
name=fareCalSearchType type=hidden class=radioMargin id=flexBonus
onclick=setGlobals(2); value="flexible around dates">
<input name="fareCalFlexDaysSlice1:fareCalDays" type="hidden" value="3 days before and after" />
<input name="fareCalFlexDaysSlice2:fareCalDays" type="hidden" value="3 days before and after" />
<input type="submit" value="Find">
</FORM>
<script>
var variableday1=parseInt(document.fareCalSearchForm.daysfromtoday.value)
var mydate2=new Date()
mydate2.setDate(mydate2.getDate()+variableday1);
var theyear2=mydate2.getYear()
if (theyear2 < 1000)
theyear2+=1900
var theday2=mydate2.getDay()
var themonth2=mydate2.getMonth()+1
if (themonth2<10)
themonth2="0"+themonth2
var theday2=mydate2.getDate()
if (theday2<10)
theday2="0"+theday2
var variableday2=parseInt(document.fareCalSearchForm.daysafterdeparture.value)
var mydate3=new Date()
mydate3.setDate(mydate2.getDate()+variableday2);
var theyear3=mydate2.getYear()
if (theyear3 < 1000)
theyear3+=1900
var theday3=mydate3.getDay()
var themonth3=mydate3.getMonth()+1
if (themonth3<10)
themonth3="0"+themonth3
var theday3=mydate3.getDate()
if (theday3<10)
theday3="0"+theday3
//////EDIT below three variable to customize the format of the date/////
var displayfirst=themonth
var displaysecond=theday
var displaythird=theyear
////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
document.getElementById('flexBonuschgStartDate').value = themonth2+"/"+theday2+"/"+theyear2
document.getElementById('flexBonuschgEndDate').value = themonth3+"/"+theday3+"/"+theyear3
</script>
</body>
</html>
So ganz kapier ich das nicht.
Ich habe ein Formular das nicht gross verändert werden darf
Was nicht verändert werden soll, sollte nicht in ein Formular, denn die sind dazu da dass man Daten ändert. Das würd ich mir lieber in einer Session auf dem Server merken.
da die Daten beim abschicken weiter verwendet werden.
Meistens ist das so :-) Was genau meinst du damit?
Es soll einerseits möglich sein das Formular mit dem Datum von heute + x Tage und Datum von heute + x Tage + y Tage abzuschicken.
Warum machst du nicht einfach ein Feld, in das man das Datum direkt eingeben kann? Ich stells mir komfortabler vor wenn ich direkt das Datum sehe wann ich abfliege, statt dass ich eingeben muss in 3 Tagen (bezogen auf heute) flieg ich los und in 5 komm ich wieder.
Es soll andererseits möglich sein ein 2tes Datumsfeld manuell auszufüllen und beim abschicken soll er sich Abflug und Rückkehr merken und beim nächsten öffnen der Seite soll er die zuletzt eingegebenen Daten gleich wieder rein schreiben.
Cookies setzen, oder in einer Session auf dem Server merken.
Ich glaube die ideal Lösung wäre wenn man einen save Button einbaut der die Daten speichert und einen load Button der die Daten wieder ausliesst.
Wo willst du die speichern? Auf dem Clientrechner geht das nur mit Cookies.
Oder der Server gibt die Werte bei der Antwort wieder mit und trägt sie ein.
Hi Encoder,
dank das du dich meiner Sache annimmst.
So ganz kapier ich das nicht.
Ich habe ein Formular das nicht gross verändert werden darf
Was nicht verändert werden soll, sollte nicht in ein Formular, denn die sind dazu da dass man Daten ändert. Das würd ich mir lieber in einer Session auf dem Server merken.
damit meine ich die Namen der input Felder dürfen nicht abgeaendert werden, da diese übergeben werden müssen damit die Anfrage funktioniert.
Mein Chef möchte:
eine Maske (Formular) das 3 Möglichkeiten bietet:
1. die Eingabe per Tage (z.B. 2 Tage von heute und Rück flug nach 10 Tageb)
2. ein Formular in dem er sich die zuletzt eingegebenen Felder merk (abflug und ankunft)
3. ein Formular mit einem Kalender picker.
Auf ein warum geht er nicht ein... er möchte das so.
Bitte hilfe mir
damit meine ich die Namen der input Felder dürfen nicht abgeaendert werden, da diese übergeben werden müssen damit die Anfrage funktioniert.
Ja ok, die Namen verändert normalerweise auch kein Benutzer. Trotzdem solltest du damit rechnen dass jemand dir einen unvollständigen Request schickt.
Was soll das dann aussagen, dass die Namen nicht verändert werden sollen? Lass sie wie sie sind und das Problem ist gelöst :-)
- ein Formular in dem er sich die zuletzt eingegebenen Felder merk (abflug und ankunft)
Ein Formular kann sich nichts merken. Der Inhalt muss in neuen Formular wieder so eingetragen werden wie er war. Das ist Sache des Serverscripts.
Zu den anderen Dingen, die musst du halt so machen wie er es will.
Punkt 1 und 3 schließen sich ja nicht aus. Wenn man "2 Tage nach heute" eingibt, dann rechnet der Server eben aus wann das ist. Wenn man ein konkretes Datum eingibt, verwendet er das.
damit meine ich die Namen der input Felder dürfen nicht abgeaendert werden, da diese übergeben werden müssen damit die Anfrage funktioniert.
Ja ok, die Namen verändert normalerweise auch kein Benutzer. Trotzdem solltest du damit rechnen dass jemand dir einen unvollständigen Request schickt.
Was soll das dann aussagen, dass die Namen nicht verändert werden sollen? Lass sie wie sie sind und das Problem ist gelöst :-)
- ein Formular in dem er sich die zuletzt eingegebenen Felder merk (abflug und ankunft)
Ein Formular kann sich nichts merken. Der Inhalt muss in neuen Formular wieder so eingetragen werden wie er war. Das ist Sache des Serverscripts.Zu den anderen Dingen, die musst du halt so machen wie er es will.
Punkt 1 und 3 schließen sich ja nicht aus. Wenn man "2 Tage nach heute" eingibt, dann rechnet der Server eben aus wann das ist. Wenn man ein konkretes Datum eingibt, verwendet er das.
Hi Encoder
Entschludige ich habe schwierigkeiten das Problem zu beschreiben so das du es verstehst.
OK noch ein Versuch ich hoffe ich kanns dir klarer beschreiben:
Also Ich brauche ein Formular bei dem 2 mal (je Hin- und Rückflug) angegeben werden kann.
1. D + x = Abflugdatum nach x Tagen D + x + y = Rüeckflugdatum nach x Tagen
2. Manuell + speichern der Eingabe mit Cookie
Eine Lösung könnte sein das hinter jeder der Varianten ein Submit Button ist.
Dabei habe ich 2 Probleme. Da die Felder gleich heissen muessen, speichert der Cookie nur die Daten der ersten Felder obwohl ich die ID der 2ten eingebe.
Ausserdem weiss ich nicht wie das hinbekomme das der Submit Button die richtigen Daten übermittelt
Hast du ne Idee?
Ich würde einen Button machen und dann das auswerten was eingegeben wurde. Der Besucher darf dann eben nur entweder das eine oder das andere eingeben.
Da die Felder gleich heissen muessen, speichert der Cookie nur die Daten der ersten Felder obwohl ich die ID der 2ten eingebe.
Warum müssen die? Es steht ja was unterschiedliches drin, einmal ein Datum und einmal eine Zahl. Deswegen würde ich sagen dir DÜRFEN NIEMALS gleich heißen.