Reputation: 1657
i.e.:
<form 1>
<input type="hidden" name="url" value="1">
</form 1>
and
<form 2>
<input type="hidden" name="url" value="2">
</form 2>
Is this allowed and valid?
Upvotes: 95
Views: 102549
Reputation: 2597
"This is Not Good" parses correctly on every browser I know of; if two url's appear in the url encoded string, it will be treated as an array. Try this in JQuery:
$('<form name="form1">\
<input type="hidden" name="url" value="1">\
<input type="hidden" name="url" value="2">\
</form>').serialize()
and you will get: "url=1&url=2"
a well-written query string parser will return a json structure like this:
{"url":["1", "2"]}
Upvotes: 10
Reputation: 39
<form>
<input type="hidden" name="url[]" value="1">
<input type="hidden" name="url[]" value="2">
</form>
In PHP you will get values with $_POST['url']
for($i=0;$i<count(url);$i++)
echo $_POST['url'][$i];
Upvotes: 4
Reputation: 21838
Yes -- each will only submit with their respective forms.
If you have them in the same form, one will override the other and it is not valid.
EDIT: As pointed out by Mahmoodvcs that the overriding only occurs in some languages (such as PHP) as is not inherent within HTML itself.
Upvotes: 5
Reputation: 21
A) Your first example is okay, because the forms time of submission will be different:
<form id="1">
<input type="hidden" name="url" value="1">
</form>
<form id="2">
<input type="hidden" name="url" value="2">
</form>
B) Your second example is also okay, but not standard coding practice:
<form>
<input type="hidden" name="url" value="1">
<input type="hidden" name="url" value="2">
</form>
Java code two extract both values:
Map<String,String[]> parmMap = requestObj.getParameterMap();
String input1 = parmMap.get("url")[0];
String input2 = parmMap.get("url")[1];
Upvotes: 1
Reputation:
Yes, it is valid
This is Good
<form name="form1">
<input type="hidden" name="url" value="1">
</form>
<form name="form2">
<input type="hidden" name="url" value="2">
</form>
This is also fine and will generally be interpreted as an array of values, e.g. {url: [1, 2]}
, depending on what your server does. In a URL encoding, it will look like url=1&url=2
.
<form name="form1">
<input type="hidden" name="url" value="1">
<input type="hidden" name="url" value="2">
</form>
Upvotes: 88
Reputation: 10983
To test if it is valid or not, creat you page and test at W3C here :
Upvotes: 2
Reputation: 943207
Yes.
More, it is essential if you are dealing with radio button groups.
Upvotes: 19