473,394 Members | 2,063 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,394 software developers and data experts.

Capturing HTML form field names even when they are blank

JDS
Hi, all. I'd like to do the following, preferably *without* resorting to
javascript:

I have a long, dynamically-generated form questionnaire. Not all of the
form fields are dynamically generated, though.

I'd like to capture the NAME of every HTML form field element on the
server, even if that element is submitted blank. The trouble is, with,
say, radio buttons or checkboxes for example, a *blank* element does not
get submitted at all.

Example:
<form action="text.php">
<input type="radio" name="firstbutton" value="1">
<input type="radio" name="firstbutton" value="2">
<input type="radio" name="firstbutton" value="2">
<input type="text" name="thetextbox">
</form>

text.php
<?php
print_r($_REQUEST);
?>

If the form is submitted completely blank, text.php prints out:

Array
(
[thetextbox] =>
)

ONLY if I click a value on one of the radio buttons do I get the field
"firstbutton", e.g.:

Array
(
[thetextbox] =>
[firstbutton] => 1
)

How can I get the names of all of the fields in the HTML form even if they
are sent blank? I am considering using JavaScript onSubmit() to put fake
values in for blank fields, but using JS is not desirable. I had been
putting hidden fields in with the field name "field_names[nameoffield]"
for each form field but this does not scale well for any non-dynamic form
fields.

Any other ideas?

--
JDS | je*****@go.away.com
| http://www.newtnotes.com
DJMBS | http://newtnotes.com/doctor-jeff-master-brainsurgeon/

Jul 23 '05 #1
7 2539
DH
JDS wrote:
Hi, all. I'd like to do the following, preferably *without* resorting to
javascript:

I have a long, dynamically-generated form questionnaire. Not all of the
form fields are dynamically generated, though.

I'd like to capture the NAME of every HTML form field element on the
server, even if that element is submitted blank. The trouble is, with,
say, radio buttons or checkboxes for example, a *blank* element does not
get submitted at all.

Example:
<form action="text.php">
<input type="radio" name="firstbutton" value="1">
<input type="radio" name="firstbutton" value="2">
<input type="radio" name="firstbutton" value="2">
<input type="text" name="thetextbox">
</form>

text.php
<?php
print_r($_REQUEST);
?>

If the form is submitted completely blank, text.php prints out:

Array
(
[thetextbox] =>
)

ONLY if I click a value on one of the radio buttons do I get the field
"firstbutton", e.g.:

Array
(
[thetextbox] =>
[firstbutton] => 1
)

How can I get the names of all of the fields in the HTML form even if they
are sent blank? I am considering using JavaScript onSubmit() to put fake
values in for blank fields, but using JS is not desirable. I had been
putting hidden fields in with the field name "field_names[nameoffield]"
for each form field but this does not scale well for any non-dynamic form
fields.

Any other ideas?


Perhaps this will help, or give you some ideas:

$buffer = '';

while(list($key, $val) = each($_POST)){
if(!is_array($val)){
$val = stripslashes(trim($val));
$buffer .= $key.': '.$val."\n";
}else{
foreach(array_keys($val) as $key){
$val[$key] = stripslashes(trim($val));
$buffer .= $val[$key].': '.$val."\n";
}
}
}

echo "\n".nl2br($buffer);
Jul 23 '05 #2

JDS wrote:

[snip]
Example:
<form action="text.php">
<input type="radio" name="firstbutton" value="1">
<input type="radio" name="firstbutton" value="2">
<input type="radio" name="firstbutton" value="2">
<input type="text" name="thetextbox">
</form>


To do what you want, you have to initialize the fields using
"type=hidden". For example, using your example code:
<form action="text.php" method="POST">
<input type="hidden" name="firstbutton" value="0">
<input type="radio" name="firstbutton" value="1">
<input type="radio" name="firstbutton" value="2">
<input type="radio" name="firstbutton" value="3">
<input type="text" name="thetextbox">
</form>

Now when someone submits the form without selecting anything, you will
get a value of "0" in the variable $_POST['firstbutton'].

You should be able to extend this technique to your real form.

Ken

Jul 23 '05 #3
JDS wrote:
I'd like to capture the NAME of every HTML form field element on the
server, even if that element is submitted blank. The trouble is, with,
say, radio buttons or checkboxes for example, a *blank* element does not
get submitted at all.
Well sorry, you can't.
Example:
<form action="text.php">
<input type="radio" name="firstbutton" value="1">
<input type="radio" name="firstbutton" value="2">
<input type="radio" name="firstbutton" value="2">
<input type="text" name="thetextbox">
</form>


<form action="text.php">
<input type="radio" name="firstbutton" value="1">
<input type="radio" name="firstbutton" value="2">
<input type="radio" name="firstbutton" value="2">
<input type="text" name="thetextbox">
<input type="hidden" name="FIELDS" value="thetextbox,firstbutton">
</form>
--
Toby A Inkster BSc (Hons) ARCS
Contact Me ~ http://tobyinkster.co.uk/contact

Jul 23 '05 #4
On Mon, 07 Feb 2005 14:50:51 -0500, JDS <je*****@go.away.com> wrote:
Hi, all. I'd like to do the following, preferably *without* resorting to
javascript:

I have a long, dynamically-generated form questionnaire. Not all of the
form fields are dynamically generated, though.

I'd like to capture the NAME of every HTML form field element on the
server, even if that element is submitted blank. The trouble is, with,
say, radio buttons or checkboxes for example, a *blank* element does not
get submitted at all.
This behaviour is required by the HTML standard:

http://www.w3.org/TR/html401/interac...html#h-17.13.2
http://www.w3.org/TR/html401/interact/forms.html#radio
Example:
<form action="text.php">
<input type="radio" name="firstbutton" value="1">
<input type="radio" name="firstbutton" value="2">
<input type="radio" name="firstbutton" value="2">
<input type="text" name="thetextbox">
</form>

If the form is submitted completely blank, text.php prints out:

Array
(
[thetextbox] =>
)

ONLY if I click a value on one of the radio buttons do I get the field
"firstbutton", e.g.:

Array
(
[thetextbox] =>
[firstbutton] => 1
)

How can I get the names of all of the fields in the HTML form even if they
are sent blank? I am considering using JavaScript onSubmit() to put fake
values in for blank fields, but using JS is not desirable. I had been
putting hidden fields in with the field name "field_names[nameoffield]"
for each form field but this does not scale well for any non-dynamic form
fields.


Adding extra elements is AFAIK the only method, given that HTML requires that
non-selected radio buttons are not successful.

--
Andy Hassall / <an**@andyh.co.uk> / <http://www.andyh.co.uk>
<http://www.andyhsoftware.co.uk/space> Space: disk usage analysis tool
Jul 23 '05 #5
JDS
On Mon, 07 Feb 2005 20:50:37 +0000, Toby Inkster wrote:
Well sorry, you can't.


Allright. Thanks all. I had been using hidden fields, anyways, which was
fine for the dynamically-generated form fields because I can just have the
hidden fields dynamically generated as well.

However, manually putting in hiddens for the other fields does not scale
well and is prone to errors. Oh well, I'll figure something out.

Yum, coffee.

--
JDS | je*****@go.away.com
| http://www.newtnotes.com
DJMBS | http://newtnotes.com/doctor-jeff-master-brainsurgeon/

Jul 23 '05 #6
JDS wrote:
On Mon, 07 Feb 2005 20:50:37 +0000, Toby Inkster wrote:

Well sorry, you can't.

Allright. Thanks all. I had been using hidden fields, anyways, which was
fine for the dynamically-generated form fields because I can just have the
hidden fields dynamically generated as well.

However, manually putting in hiddens for the other fields does not scale
well and is prone to errors. Oh well, I'll figure something out.


Read the HTML spec. For radio buttons, one option must *always*
be selected. Therefore, the case you site should not happen,
there should always be one selected and so one should always be
submitted.

<URL:http://www.w3.org/TR/html401/interact/forms.html#radio>

radio buttons

Radio buttons are like checkboxes except that when several share
the same control name , they are mutually exclusive: when one is
switched "on", all others with the same name are switched "off".
The INPUT element is used to create a radio button control.

If no radio button in a set sharing the same control name is
initially "on", user agent behavior for choosing which control
is initially "on" is undefined. Note. Since existing
implementations handle this case differently, the current
specification differs from RFC 1866 ( [RFC1866] section
8.1.2.4), which states:

At all times, exactly one of the radio buttons in a set is
checked. If none of the <INPUT> elements of a set of radio
buttons specifies `CHECKED', then the user agent must check
the first radio button of the set initially.

Since user agent behavior differs, authors should ensure that in
each set of radio buttons that one is initially "on".

*Note the last sentence.*
--
Fred
Jul 23 '05 #7
JDS
On Wed, 09 Feb 2005 01:49:27 +1000, Fred Oz wrote:
Since user agent behavior differs, authors should ensure that in each
set of radio buttons that one is initially "on".

*Note the last sentence.*


Great! Thanks for the info! This is very enlightening.

--
JDS | je*****@go.away.com
| http://www.newtnotes.com
DJMBS | http://newtnotes.com/doctor-jeff-master-brainsurgeon/

Jul 23 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
by: deko | last post by:
I have a basic Feedback form - I want to prevent blank entries. The problem with the below code is that the form still Posts if the 'message' field is blank. The form will not post if the...
7
by: JDS | last post by:
Hi, all. I'd like to do the following, preferably *without* resorting to JavaScript: I have a long, dynamically-generated form questionnaire. Not all of the form fields are dynamically...
8
by: dmcconkey | last post by:
Hi folks, I have a client with four websites. Each site has a contact form that is identical. They all have "required" fields validated through a JavaScript onSubmit() function. Upon validation,...
4
by: Andrew Williams | last post by:
Does anyone know of a way to quickly validate an HTML web form? I need to make sure that certain fields on my form actually contain data and are not submitted blank. I have tried using...
33
by: Joerg Schuster | last post by:
Hello, Python regular expressions must not have more than 100 capturing groups. The source code responsible for this reads as follows: # XXX: <fl> get rid of this limitation! if...
4
by: kathy | last post by:
Working in a form, I have an Iif statement where if a date is not filled in, another field will show as a blank. If the date IS filled in, the 2nd field will show its actual value. The following...
2
by: Chris Windsor | last post by:
I hope the following describe what I'm trying to do: I have created a tool to be used by product analysts when studying different cell phone designs. Part of the tool is a set of 11 forms on a...
0
by: lawrenceS59 | last post by:
Hi all, I'm fairly new to web development so bare with me. The html page that i've created isn't working and i can't figure out why. I'm guessing there are some rules that need to be followed...
2
by: GS | last post by:
How can one avoid capturing leading empty or blank lines? the data I deal with look like this "will be paid on the dates you specified. xyz supplier amount: $100.52 when: September 07,...
15
by: lxyone | last post by:
Using a flat file containing table names, fields, values whats the best way of creating html pages? I want control over the html pages ie 1. layout 2. what data to show 3. what controls to...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.