Populate form values based on previous same form fields

This is a discussion on Populate form values based on previous same form fields within the alt.comp.lang.php forums, part of the PHP Programming Forums category; This message is cross posted in alt.comp.lang.php & comp.lang.javascript I have a form for a ...


Go Back   Usenet Forums > PHP Programming Forums > alt.comp.lang.php

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 06-09-2004
Rizyak
 
Posts: n/a
Default Populate form values based on previous same form fields

This message is cross posted in
alt.comp.lang.php & comp.lang.javascript

I have a form for a user to input an establishment's hours and what time an
event is taking place. After the user inputs their establishment's hours of
operation I want the form elements lower in the form to adjust so that an
event can only happen when the place is open.

I have two fields for the hours:
These are both select fields with values between 0-23
store_open
store_close

Later in the form I have
event_start
event_stop

These values need to be between whatever store_open and store_close are.

I am stuck.

Thank you.




Reply With Quote
  #2 (permalink)  
Old 06-09-2004
Mick White
 
Posts: n/a
Default Re: Populate form values based on previous same form fields

Rizyak wrote
>
> I have two fields for the hours:
> These are both select fields with values between 0-23
> store_open
> store_close
>
> Later in the form I have
> event_start
> event_stop
>
> These values need to be between whatever store_open and store_close are.
>
> I am stuck.
>
> Thank you.


One approach

Number.protoype.isBetween=function(a,b){
return this>=Math.min(a,b) && this<=Math.max(a,b);
}

if(!( +event_start < +event_end &&
+event_start.isBetween(+store_open,+store_close) &&
+event_stop.isBetween(+store_open,+store_close))){
alert ("NO")
}
Mick
Reply With Quote
  #3 (permalink)  
Old 06-11-2004
Robert
 
Posts: n/a
Default Re: Populate form values based on previous same form fields

"Rizyak" <ryanREMOVEME@latitude47.comANDMETOO> wrote in message news:<ca5jc7$ke4$1@nntp1.u.washington.edu>...

> I have a form for a user to input an establishment's hours and what time an
> event is taking place. After the user inputs their establishment's hours of
> operation I want the form elements lower in the form to adjust so that an
> event can only happen when the place is open.
>


Here is one approach to validating the event times:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Verify time fields</title>

<script type="text/javascript">

// ------------------------------------------
function validateAll()
{
alert("in validateAll");

var x = document.forms["myForm"];
var inputOK;

if( x.storeOpen.value == "" )
{
alert("Enter a store open time.");
inputOK= false;
}
else if( x.storeClose.value == "" )
{
alert("Enter a store close time.");
inputOK= false;
}
else if( x.eventStart.value == "" )
{
alert("Enter an event start time.");
inputOK= false;
}
else if( x.eventEnd.value == "" )
{
alert("Enter an event stop time.");
inputOK= false;
}
else
{
inputOK = checkBoth();
}

alert("from validateAll. inputOK = " + inputOK);
return inputOK;

}

// ..............................
function checkBoth()
{
alert("In checkBoth...");

var x = document.forms["myForm"];

var inputOK;

// Convert the times in string format to numeric format
// in minutes.
var storeOpen = convertTime(x.storeOpen.value);
var storeClose = convertTime(x.storeClose.value);
var eventStart = convertTime(x.eventStart.value);
var eventEnd = convertTime(x.eventEnd.value);

alert(".storeOpen.value = " + x.storeOpen.value +
" storeOpen = " + storeOpen +
"\n .storeClose.value = " + x.storeClose.value +
" storeClose = " + storeClose +
"\n .eventStart.value = " + x.eventStart.value +
" eventStart = " + eventStart +
"\n .eventEnd.value = " + x.eventEnd.value +
" eventEnd = " + eventEnd );

if ( eventStart > eventEnd )
{
alert("Event start must be before " +
"or equal to event end.");
x.eventStart.focus();
inputOK = false;
}
else if ( !isBetween(eventStart,storeOpen,storeClose) )
{
alert("Event start must occur " +
"when the store is open.");
x.eventStart.focus();
inputOK = false;
}
else if ( !isBetween(eventEnd,storeOpen,storeClose) )
{
alert("Event end must occur " +
"when the store is open.");
x.eventEnd.focus();
inputOK = false;
}
else
{
inputOK = true;
}


return inputOK;
}

// .....................................
function convertTime(timeString)
{

//Convert to a minute based value.
//Input may either be in 24 hour format
// or am/pm format.
// Examples 8:00am, 8, 8:12, 14:30, 2:30pm, or 4:30P.M.

var theTime = parseInt(timeString,10) * 60;

if ( timeString.indexOf("p") >= 0 ||
timeString.indexOf("P") >= 0 )
{
theTime += 12*60;
}

var minutesIndex = timeString.indexOf(":");
if ( minutesIndex >= 0 )
{
var minutes = timeString.substr(minutesIndex+1);
theTime += parseInt(minutes,10);
}

return theTime;
}

// ......................................
function isBetween(test,a,b)
{
return test>=a && test<=b;
}


</script>
</head>

<body>

<p>Please try out our form.</p>

<form name="myForm"
action="http://www.notavalidwebaddress.com"
method="POST"
onSubmit="return validateAll();">

<p>Store start time:<br>
<input type="text" name="storeOpen" size="20"><br><br>
Store end time:<br>
<input type="text" name="storeClose" size="20"><br>
</p>
<p>The little event times.</p>
<p>Event start time:<br>
<input type="text" name="eventStart" size="40">
<p>Event end time<br>
<input type="text" name="eventEnd" size="40">
</p>

<p><input type="submit" border="0" value="Submit">
</form>

</body>
</html>

Robert
Reply With Quote
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT +1. The time now is 11:19 PM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0