Re: [PHP] iterate javascript verification
Hey guys, Thanks for the input! This is pretty nice, and DOES work. I like the fact that the fields have been into an iterative array. It's a very elegant solution. However the problem with this approach is that if you load the page directly it works. But if you call the page from the index.php page you get an initial error on all fields as they are all quite naturally empty when you first load the page. Here's the index.php page. All it is is HTML, no php: html xmlns=http://www.w3.org/1999/xhtml; xml:lang=en lang=en head meta http-equiv=Content-Type content=text/html; charset=utf-8 / titleLDAP Request Form/title body centerh3LDAP Request Form/h3 form name=form_request method=post action=ldap.php onsubmit=return validateForm() label for=requestor_emailYour Email Address:/labelbr / input type=text required id=requestor_email name=requestor_email /br /br / label for=num_formsHow Many Forms Do You Need:/labelbr / input type=text required maxlength=2 size=5 id=num_forms name=num_forms /br /br / input type=submit name=submit value=Submit / /form/center /body /html And here is ldap.php as was suggested: body ?php if (isset($_POST['submit'])) { $requestor_email = $_POST['requestor_email']; $num_forms = $_POST['num_forms']; } echo centerYou will be creating $num_forms accounts today./centerbr /; for($counter = 1;$counter=$num_forms;$counter++) { echo 'centerform name=ldap_accounts method=post action=sendemail.php onsubmit=return validateForm()'; echo 'br /br /'; echo Enter user: $counterbr /br /; echo label for=\first_name_.$counter.\First Name:/labelbr /; echo input type=\text\ id=\first_name_.$counter.\ name=\first_name_.$counter.\ /br /br /; echo label for=\last_name_.$counter.\Last Name:/labelbr /; echo input type=\text\ id=\last_name_.$counter.\ name=\last_name_.$counter.\ /br /br /; echo label for=\department_.$counter.\Department:/labelbr /; echo input type=\text\ id=\department_.$counter.\ name=\department_.$counter.\ /br /br /; echo label for=\title_.$counter.\Title:/labelbr /; echo input type=\text\ id=\title_.$counter.\ name=\title_.$counter.\ /br /br /; echo label for=\email_.$counter.\Email:/labelbr /; echo input type=\text\ id=\email_.$counter.\ name=\email_.$counter.\ /br /br /; echo label for=\phone_$counter.\Phone:/labelbr /; echo input type=\text\ id=\phone_.$counter.\ name=\phone_.$counter.\ /br /br /; } echo input type=\hidden\ id=\num_forms\ name=\num_forms\ value=\$num_forms\ /br /br /; echo input type=\hidden\ id=\requestor_email\ name=\requestor_email\ value=\$requestor_email\ /; echo input type=\submit\ name=\submit\ value=\Create Ticket\ /; echo /form/center; ? Why this happens when you call the ldap.php page from index.php but not when you load the page directly beats me. But maybe someone can shed some light on that? Thanks! On Sat, May 25, 2013 at 3:45 AM, tamouse mailing lists tamouse.li...@gmail.com wrote: On Fri, May 24, 2013 at 9:51 PM, Ken Robinson kenrb...@rbnsn.com wrote: I took your code and modified it to use HTML5 validation (and few other changes). You can see the results at http://my-testbed.com/test1/form_validation.php http://my-testbed.com/test1/form_validation.php My code follows: ?php $fields = array('first_name','last_name','department','title','email','phone'); $num_forms = 1; $tmp = array(); $errors = array(); if (isset($_POST['submit'])) { $requestor_email = $_POST['requestor_email']; $num_forms = $_POST['num_forms']; for ($i = 1;$i = $num_forms; ++$i) { foreach ($fields as $fld) { if ($_POST[$fld][$i] == '') { $errors[] = ucwords(str_replace('_',' ',$fld)) . for account $i can not be blank; } } } } if (!empty($errors)) { $tmp[] = The following fields are in error:br; $tmp[] = implode(br\n,$errors); $tmp[] = br; } $tmp[] = div style='text-align:center'You will be creating $num_forms accounts today./divbr; $tmp[] = 'div style=text-align:centerform name=ldap_accounts method=post action='; $tmp[] = 'br /br /'; for($counter = 1;$counter=$num_forms;$counter++) { $tmp[] = Enter user: $counterbr /; $tmp[] = label for='first_name_$counter'First Name:/labelbr/; $tmp[] = input type='text' required id='first_name_$counter' name='first_name[$counter]'br /br /; $tmp[] = label for='last_name_$counter'Last Name:/labelbr /; $tmp[] = input type='text' required id='last_name_$counter' name='last_name[$counter]' /br /br /; $tmp[] = label for='department_$counter'Department:/labelbr/; $tmp[] =
Re: [PHP] iterate javascript verification
When you do validation of the form in the same script that shows the form, the normal way to do this is ?php if (isset($_POST['submit'])) { // // validation here // } ? This won't work if you're getting to the page via another form, since the $_POST['submit'] is set. There two ways of avoiding this: 1) use hidden fields in each form to indicate which form was submitted 2) use a different name for each form's submit button and use that in the above code Ken At 12:52 PM 5/27/2013, Tim Dunphy wrote: Hey guys, Thanks for the input! This is pretty nice, and DOES work. I like the fact that the fields have been into an iterative array. It's a very elegant solution. However the problem with this approach is that if you load the page directly it works. But if you call the page from the index.php page you get an initial error on all fields as they are all quite naturally empty when you first load the page. Here's the index.php page. All it is is HTML, no php: html xmlns=http://www.w3.org/1999/xhtml; xml:lang=en lang=en head meta http-equiv=Content-Type content=text/html; charset=utf-8 / titleLDAP Request Form/title body centerh3LDAP Request Form/h3 form name=form_request method=post action=ldap.php onsubmit=return validateForm() label for=requestor_emailYour Email Address:/labelbr / input type=text required id=requestor_email name=requestor_email /br /br / label for=num_formsHow Many Forms Do You Need:/labelbr / input type=text required maxlength=2 size=5 id=num_forms name=num_forms /br /br / input type=submit name=submit value=Submit / /form/center /body /html And here is ldap.php as was suggested: body ?php if (isset($_POST['submit'])) { $requestor_email = $_POST['requestor_email']; $num_forms = $_POST['num_forms']; } echo centerYou will be creating $num_forms accounts today./centerbr /; for($counter = 1;$counter=$num_forms;$counter++) { echo 'centerform name=ldap_accounts method=post action=sendemail.php onsubmit=return validateForm()'; echo 'br /br /'; echo Enter user: $counterbr /br /; echo label for=\first_name_.$counter.\First Name:/labelbr /; echo input type=\text\ id=\first_name_.$counter.\ name=\first_name_.$counter.\ /br /br /; echo label for=\last_name_.$counter.\Last Name:/labelbr /; echo input type=\text\ id=\last_name_.$counter.\ name=\last_name_.$counter.\ /br /br /; echo label for=\department_.$counter.\Department:/labelbr /; echo input type=\text\ id=\department_.$counter.\ name=\department_.$counter.\ /br /br /; echo label for=\title_.$counter.\Title:/labelbr /; echo input type=\text\ id=\title_.$counter.\ name=\title_.$counter.\ /br /br /; echo label for=\email_.$counter.\Email:/labelbr /; echo input type=\text\ id=\email_.$counter.\ name=\email_.$counter.\ /br /br /; echo label for=\phone_$counter.\Phone:/labelbr /; echo input type=\text\ id=\phone_.$counter.\ name=\phone_.$counter.\ /br /br /; } echo input type=\hidden\ id=\num_forms\ name=\num_forms\ value=\$num_forms\ /br /br /; echo input type=\hidden\ id=\requestor_email\ name=\requestor_email\ value=\$requestor_email\ /; echo input type=\submit\ name=\submit\ value=\Create Ticket\ /; echo /form/center; ? Why this happens when you call the ldap.php page from index.php but not when you load the page directly beats me. But maybe someone can shed some light on that? Thanks! On Sat, May 25, 2013 at 3:45 AM, tamouse mailing lists tamouse.li...@gmail.com wrote: On Fri, May 24, 2013 at 9:51 PM, Ken Robinson kenrb...@rbnsn.com wrote: I took your code and modified it to use HTML5 validation (and few other changes). You can see the results at http://my-testbed.com/test1/form_validation.php http://my-testbed.com/test1/form_validation.php My code follows: ?php $fields = array('first_name','last_name','department','title','email','phone'); $num_forms = 1; $tmp = array(); $errors = array(); if (isset($_POST['submit'])) { $requestor_email = $_POST['requestor_email']; $num_forms = $_POST['num_forms']; for ($i = 1;$i = $num_forms; ++$i) { foreach ($fields as $fld) { if ($_POST[$fld][$i] == '') { $errors[] = ucwords(str_replace('_',' ',$fld)) . for account $i can not be blank; } } } } if (!empty($errors)) { $tmp[] = The following fields are in error:br; $tmp[] = implode(br\n,$errors); $tmp[] = br; } $tmp[] = div style='text-align:center'You will be creating $num_forms accounts today./divbr; $tmp[] = 'div style=text-align:centerform name=ldap_accounts method=post action='; $tmp[] = 'br /br /'; for($counter =
Re: [PHP] iterate javascript verification
Sounds good! Thanks Ken. Very clear now. Tim Sent from my iPhone On May 27, 2013, at 1:57 PM, Ken Robinson kenrb...@rbnsn.com wrote: When you do validation of the form in the same script that shows the form, the normal way to do this is ?php if (isset($_POST['submit'])) { // // validation here // } ? This won't work if you're getting to the page via another form, since the $_POST['submit'] is set. There two ways of avoiding this: 1) use hidden fields in each form to indicate which form was submitted 2) use a different name for each form's submit button and use that in the above code Ken At 12:52 PM 5/27/2013, Tim Dunphy wrote: Hey guys, Thanks for the input! This is pretty nice, and DOES work. I like the fact that the fields have been into an iterative array. It's a very elegant solution. However the problem with this approach is that if you load the page directly it works. But if you call the page from the index.php page you get an initial error on all fields as they are all quite naturally empty when you first load the page. Here's the index.php page. All it is is HTML, no php: html xmlns=http://www.w3.org/1999/xhtml; xml:lang=en lang=en head meta http-equiv=Content-Type content=text/html; charset=utf-8 / titleLDAP Request Form/title body centerh3LDAP Request Form/h3 form name=form_request method=post action=ldap.php onsubmit=return validateForm() label for=requestor_emailYour Email Address:/labelbr / input type=text required id=requestor_email name=requestor_email /br /br / label for=num_formsHow Many Forms Do You Need:/labelbr / input type=text required maxlength=2 size=5 id=num_forms name=num_forms /br /br / input type=submit name=submit value=Submit / /form/center /body /html And here is ldap.php as was suggested: body ?php if (isset($_POST['submit'])) { $requestor_email = $_POST['requestor_email']; $num_forms = $_POST['num_forms']; } echo centerYou will be creating $num_forms accounts today./centerbr /; for($counter = 1;$counter=$num_forms;$counter++) { echo 'centerform name=ldap_accounts method=post action=sendemail.php onsubmit=return validateForm()'; echo 'br /br /'; echo Enter user: $counterbr /br /; echo label for=\first_name_.$counter.\First Name:/labelbr /; echo input type=\text\ id=\first_name_.$counter.\ name=\first_name_.$counter.\ /br /br /; echo label for=\last_name_.$counter.\Last Name:/labelbr /; echo input type=\text\ id=\last_name_.$counter.\ name=\last_name_.$counter.\ /br /br /; echo label for=\department_.$counter.\Department:/labelbr /; echo input type=\text\ id=\department_.$counter.\ name=\department_.$counter.\ /br /br /; echo label for=\title_.$counter.\Title:/labelbr /; echo input type=\text\ id=\title_.$counter.\ name=\title_.$counter.\ /br /br /; echo label for=\email_.$counter.\Email:/labelbr /; echo input type=\text\ id=\email_.$counter.\ name=\email_.$counter.\ /br /br /; echo label for=\phone_$counter.\Phone:/labelbr /; echo input type=\text\ id=\phone_.$counter.\ name=\phone_.$counter.\ /br /br /; } echo input type=\hidden\ id=\num_forms\ name=\num_forms\ value=\$num_forms\ /br /br /; echo input type=\hidden\ id=\requestor_email\ name=\requestor_email\ value=\$requestor_email\ /; echo input type=\submit\ name=\submit\ value=\Create Ticket\ /; echo /form/center; ? Why this happens when you call the ldap.php page from index.php but not when you load the page directly beats me. But maybe someone can shed some light on that? Thanks! On Sat, May 25, 2013 at 3:45 AM, tamouse mailing lists tamouse.li...@gmail.com wrote: On Fri, May 24, 2013 at 9:51 PM, Ken Robinson kenrb...@rbnsn.com wrote: I took your code and modified it to use HTML5 validation (and few other changes). You can see the results at http://my-testbed.com/test1/form_validation.php http://my-testbed.com/test1/form_validation.php My code follows: ?php $fields = array('first_name','last_name','department','title','email','phone'); $num_forms = 1; $tmp = array(); $errors = array(); if (isset($_POST['submit'])) { $requestor_email = $_POST['requestor_email']; $num_forms = $_POST['num_forms']; for ($i = 1;$i = $num_forms; ++$i) { foreach ($fields as $fld) { if ($_POST[$fld][$i] == '') { $errors[] = ucwords(str_replace('_',' ',$fld)) . for account $i can not be blank; } } } } if (!empty($errors)) { $tmp[] = The following fields are in error:br; $tmp[] = implode(br\n,$errors); $tmp[] = br; } $tmp[] =
[PHP] iterate javascript verification
Hello list, I have a php script that creates a variable number of forms based on a $_POST variable from a preceding page. It then takes the data input into the form and neatly packages the result into an email sent to an email address (eventually to be a ticketing system). Almost everything on the page works great. The only thing I can't seem to get working is how to verify that the fields in the form are not left empty using javascript. The syntax I'm using seems like it should work, however when I leave one or more of the fields empty, the email gets sent anyway with the missing data. Here's the app I was hoping someone might be able to suggest a successful approach: html head titleLDAP Form/title body ?php if (isset($_POST['submit'])) { $requestor_email = $_POST['requestor_email']; $num_forms = $_POST['num_forms']; } echo centerYou will be creating $num_forms accounts today./centerbr /; for($counter = 1;$counter=$num_forms;$counter++) { echo 'centerform name=ldap_accounts method=post action=sendemail.php onsubmit=return validateForm()'; echo 'br /br /'; echo Enter user: $counterbr /; echo label for=\first_name_.$counter.\First Name:/labelbr /; echo input type=\text\ id=\first_name_.$counter.\ name=\first_name_.$counter.\ /br /br /; echo label for=\last_name_.$counter.\Last Name:/labelbr /; echo input type=\text\ id=\last_name_.$counter.\ name=\last_name_.$counter.\ /br /br /; echo label for=\department_.$counter.\Department:/labelbr /; echo input type=\text\ id=\department_.$counter.\ name=\department_.$counter.\ /br /br /; echo label for=\title_.$counter.\Title:/labelbr /; echo input type=\text\ id=\title_.$counter.\ name=\title_.$counter.\ /br /br /; echo label for=\email_.$counter.\Email:/labelbr /; echo input type=\text\ id=\email_.$counter.\ name=\email_.$counter.\ /br /br /; echo label for=\phone_$counter.\Phone:/labelbr /; echo input type=\text\ id=\phone_.$counter.\ name=\phone_.$counter.\ /br /br /; ? script function validateForm() { var a=document.forms[ldap_accounts][first_name_].value; if (a==null || a==) { alert(User $counter first name must be filled out.); return false; } var b=document.forms[ldap_accounts][last_name_].value; if (b==null || b==) { alert(User $counter last name must be filled out.); return false; } var c=document.forms[ldap_accounts][department_].value; if (c==null || c==) { alert(User $counter department must be filled out.); return false; } var d=document.forms[ldap_accounts][title_].value; if (d==null || d==) { alert(User $counter title must be filled out.); return false; } var d=document.forms[ldap_accounts][email_].value; if (d==null || d==) { alert(User $counter address must be filled out.); return false; } var d=document.forms[ldap_accounts][phone_].value; if (d==null || d==) { alert(User $counter phone name must be filled out.); return false; } } /script ?php } echo input type=\hidden\ id=\num_forms\ name=\num_forms\ value=\$num_forms\ /br /br /; echo input type=\hidden\ id=\requestor_email\ name=\requestor_email\ value=\$requestor_email\ /; echo input type=\submit\ name=\submit\ value=\Create Ticket\ /; echo /form/center; ? /body /html Thanks, Tim -- GPG me!! gpg --keyserver pool.sks-keyservers.net --recv-keys F186197B
Re: [PHP] iterate javascript verification
You do realize that you shouldn't rely on Javascript to validate values returned in a form? Also, if you use HTML5, you can use the required attribute in the input tag and the browser won't let a user submit a form with a required field not filled. Of course, you should still validate within your PHP script, in case a user is using a browser that doesn't understand HTML5. At 08:07 PM 5/24/2013, Tim Dunphy wrote: Hello list, I have a php script that creates a variable number of forms based on a $_POST variable from a preceding page. It then takes the data input into the form and neatly packages the result into an email sent to an email address (eventually to be a ticketing system). Almost everything on the page works great. The only thing I can't seem to get working is how to verify that the fields in the form are not left empty using javascript. The syntax I'm using seems like it should work, however when I leave one or more of the fields empty, the email gets sent anyway with the missing data. Here's the app I was hoping someone might be able to suggest a successful approach: html head titleLDAP Form/title body ?php if (isset($_POST['submit'])) { $requestor_email = $_POST['requestor_email']; $num_forms = $_POST['num_forms']; } echo centerYou will be creating $num_forms accounts today./centerbr /; for($counter = 1;$counter=$num_forms;$counter++) { echo 'centerform name=ldap_accounts method=post action=sendemail.php onsubmit=return validateForm()'; echo 'br /br /'; echo Enter user: $counterbr /; echo label for=\first_name_.$counter.\First Name:/labelbr /; echo input type=\text\ id=\first_name_.$counter.\ name=\first_name_.$counter.\ /br /br /; echo label for=\last_name_.$counter.\Last Name:/labelbr /; echo input type=\text\ id=\last_name_.$counter.\ name=\last_name_.$counter.\ /br /br /; echo label for=\department_.$counter.\Department:/labelbr /; echo input type=\text\ id=\department_.$counter.\ name=\department_.$counter.\ /br /br /; echo label for=\title_.$counter.\Title:/labelbr /; echo input type=\text\ id=\title_.$counter.\ name=\title_.$counter.\ /br /br /; echo label for=\email_.$counter.\Email:/labelbr /; echo input type=\text\ id=\email_.$counter.\ name=\email_.$counter.\ /br /br /; echo label for=\phone_$counter.\Phone:/labelbr /; echo input type=\text\ id=\phone_.$counter.\ name=\phone_.$counter.\ /br /br /; ? script function validateForm() { var a=document.forms[ldap_accounts][first_name_].value; if (a==null || a==) { alert(User $counter first name must be filled out.); return false; } var b=document.forms[ldap_accounts][last_name_].value; if (b==null || b==) { alert(User $counter last name must be filled out.); return false; } var c=document.forms[ldap_accounts][department_].value; if (c==null || c==) { alert(User $counter department must be filled out.); return false; } var d=document.forms[ldap_accounts][title_].value; if (d==null || d==) { alert(User $counter title must be filled out.); return false; } var d=document.forms[ldap_accounts][email_].value; if (d==null || d==) { alert(User $counter address must be filled out.); return false; } var d=document.forms[ldap_accounts][phone_].value; if (d==null || d==) { alert(User $counter phone name must be filled out.); return false; } } /script ?php } echo input type=\hidden\ id=\num_forms\ name=\num_forms\ value=\$num_forms\ /br /br /; echo input type=\hidden\ id=\requestor_email\ name=\requestor_email\ value=\$requestor_email\ /; echo input type=\submit\ name=\submit\ value=\Create Ticket\ /; echo /form/center; ? /body /html Thanks, Tim -- GPG me!! gpg --keyserver pool.sks-keyservers.net --recv-keys F186197B -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] iterate javascript verification
You can validate via JS if required, for example: (JS CODE): if(element.value.length == 0){ // handle 0 length value } I do agree with Ken that you SHOULD NOT perform JS validation. It is preferable to use php or the new HTML5 features. JS can be turned-off by the user which will make JS validation impossible. On Fri, May 24, 2013 at 8:07 PM, Tim Dunphy bluethu...@gmail.com wrote: Hello list, I have a php script that creates a variable number of forms based on a $_POST variable from a preceding page. It then takes the data input into the form and neatly packages the result into an email sent to an email address (eventually to be a ticketing system). Almost everything on the page works great. The only thing I can't seem to get working is how to verify that the fields in the form are not left empty using javascript. The syntax I'm using seems like it should work, however when I leave one or more of the fields empty, the email gets sent anyway with the missing data. Here's the app I was hoping someone might be able to suggest a successful approach: html head titleLDAP Form/title body ?php if (isset($_POST['submit'])) { $requestor_email = $_POST['requestor_email']; $num_forms = $_POST['num_forms']; } echo centerYou will be creating $num_forms accounts today./centerbr /; for($counter = 1;$counter=$num_forms;$counter++) { echo 'centerform name=ldap_accounts method=post action=sendemail.php onsubmit=return validateForm()'; echo 'br /br /'; echo Enter user: $counterbr /; echo label for=\first_name_.$counter.\First Name:/labelbr /; echo input type=\text\ id=\first_name_.$counter.\ name=\first_name_.$counter.\ /br /br /; echo label for=\last_name_.$counter.\Last Name:/labelbr /; echo input type=\text\ id=\last_name_.$counter.\ name=\last_name_.$counter.\ /br /br /; echo label for=\department_.$counter.\Department:/labelbr /; echo input type=\text\ id=\department_.$counter.\ name=\department_.$counter.\ /br /br /; echo label for=\title_.$counter.\Title:/labelbr /; echo input type=\text\ id=\title_.$counter.\ name=\title_.$counter.\ /br /br /; echo label for=\email_.$counter.\Email:/labelbr /; echo input type=\text\ id=\email_.$counter.\ name=\email_.$counter.\ /br /br /; echo label for=\phone_$counter.\Phone:/labelbr /; echo input type=\text\ id=\phone_.$counter.\ name=\phone_.$counter.\ /br /br /; ? script function validateForm() { var a=document.forms[ldap_accounts][first_name_].value; if (a==null || a==) { alert(User $counter first name must be filled out.); return false; } var b=document.forms[ldap_accounts][last_name_].value; if (b==null || b==) { alert(User $counter last name must be filled out.); return false; } var c=document.forms[ldap_accounts][department_].value; if (c==null || c==) { alert(User $counter department must be filled out.); return false; } var d=document.forms[ldap_accounts][title_].value; if (d==null || d==) { alert(User $counter title must be filled out.); return false; } var d=document.forms[ldap_accounts][email_].value; if (d==null || d==) { alert(User $counter address must be filled out.); return false; } var d=document.forms[ldap_accounts][phone_].value; if (d==null || d==) { alert(User $counter phone name must be filled out.); return false; } } /script ?php } echo input type=\hidden\ id=\num_forms\ name=\num_forms\ value=\$num_forms\ /br /br /; echo input type=\hidden\ id=\requestor_email\ name=\requestor_email\ value=\$requestor_email\ /; echo input type=\submit\ name=\submit\ value=\Create Ticket\ /; echo /form/center; ? /body /html Thanks, Tim -- GPG me!! gpg --keyserver pool.sks-keyservers.net --recv-keys F186197B
Re: [PHP] iterate javascript verification
I took your code and modified it to use HTML5 validation (and few other changes). You can see the results at http://my-testbed.com/test1/form_validation.phphttp://my-testbed.com/test1/form_validation.php My code follows: ?php $fields = array('first_name','last_name','department','title','email','phone'); $num_forms = 1; $tmp = array(); $errors = array(); if (isset($_POST['submit'])) { $requestor_email = $_POST['requestor_email']; $num_forms = $_POST['num_forms']; for ($i = 1;$i = $num_forms; ++$i) { foreach ($fields as $fld) { if ($_POST[$fld][$i] == '') { $errors[] = ucwords(str_replace('_',' ',$fld)) . for account $i can not be blank; } } } } if (!empty($errors)) { $tmp[] = The following fields are in error:br; $tmp[] = implode(br\n,$errors); $tmp[] = br; } $tmp[] = div style='text-align:center'You will be creating $num_forms accounts today./divbr; $tmp[] = 'div style=text-align:centerform name=ldap_accounts method=post action='; $tmp[] = 'br /br /'; for($counter = 1;$counter=$num_forms;$counter++) { $tmp[] = Enter user: $counterbr /; $tmp[] = label for='first_name_$counter'First Name:/labelbr/; $tmp[] = input type='text' required id='first_name_$counter' name='first_name[$counter]'br /br /; $tmp[] = label for='last_name_$counter'Last Name:/labelbr /; $tmp[] = input type='text' required id='last_name_$counter' name='last_name[$counter]' /br /br /; $tmp[] = label for='department_$counter'Department:/labelbr/; $tmp[] = input type='text' required id='department_$counter.' name='department[$counter]' /br /br /; $tmp[] = label for='title_$counter'Title:/labelbr /; $tmp[] = input type='text' required id'title_.$counter' name='title[$counter]' /br /br /; $tmp[] = label for='email_.$counter'Email:/labelbr /; $tmp[] = input type='email' required id='email_.$counter' name='email[$counter]' /br /br /; $tmp[] = label for='phone_$counter'Phone:/labelbr /; $tmp[] = input type='text' required id='phone_$counter' name='phone[$counter]' /br /br /; } $tmp[] = input type='hidden' id='num_forms' name='num_forms' value='$num_forms' /br /br /; $tmp[] = input type='hidden' id='requestor_email' name='requestor_email' value='$requestor_email' /; $tmp[] = input type='submit' name='submit' value='Create Ticket' /; $tmp[] = /form/div; ? !DOCTYPE html html head titleLDAP Form/title body ?php echo implode(\n,$tmp) . \n; ? /body /html You will notice that I moved the code for the form to above the HTML section. I believe that very little PHP should be interspersed with the HTML -- it makes for cleaner code. You can use single quotes around form attributes so you don't have to escape the double quotes. The names in the form are now arrays. This makes your life much easier when extracting the values later in PHP. When you check the page in a HTML5 aware brower, you will see how the validation is done. Ken At 10:17 PM 5/24/2013, musicdev wrote: You can validate via JS if required, for example: (JS CODE): if(element.value.length == 0){ // handle 0 length value } I do agree with Ken that you SHOULD NOT perform JS validation. It is preferable to use php or the new HTML5 features. JS can be turned-off by the user which will make JS validation impossible. On Fri, May 24, 2013 at 8:07 PM, Tim Dunphy bluethu...@gmail.com wrote: Hello list, I have a php script that creates a variable number of forms based on a $_POST variable from a preceding page. It then takes the data input into the form and neatly packages the result into an email sent to an email address (eventually to be a ticketing system). Almost everything on the page works great. The only thing I can't seem to get working is how to verify that the fields in the form are not left empty using javascript. The syntax I'm using seems like it should work, however when I leave one or more of the fields empty, the email gets sent anyway with the missing data. Here's the app I was hoping someone might be able to suggest a successful approach: html head titleLDAP Form/title body ?php if (isset($_POST['submit'])) { $requestor_email = $_POST['requestor_email']; $num_forms = $_POST['num_forms']; } echo centerYou will be creating $num_forms accounts today./centerbr /; for($counter = 1;$counter=$num_forms;$counter++) { echo 'centerform name=ldap_accounts method=post action=sendemail.php onsubmit=return validateForm()'; echo 'br /br /'; echo Enter user: $counterbr /; echo label for=\first_name_.$counter.\First Name:/labelbr /; echo input type=\text\ id=\first_name_.$counter.\