Html具有相同名称的多个输入元素 [英] Html Multiple Input Elements With Same Name

查看:199
本文介绍了Html具有相同名称的多个输入元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

昨天我遇到了一个特别有趣的问题。假设我们有以下html代码块:

 < div id =addresses> 
< input type =textname =addressid =addr1/>
< input type =textname =addressid =addr2/>
< input type =textname =addressid =addr3/>
< / div>

在发布这个表单时,同名的输入元素被连接起来,值之间用逗号分隔。例如,如果我们有以下值:

  addr1 ='TEST TEST XXX'
addr2 ='YYY ZZZ 11111 '
addr3 ='ZZZ KKK TEST'

提交表单发布数据如下:

 地址='TEST TEST XXX','YYY ZZZ 11111','ZZZ KKK TEST'


$ b

然后我可以将每个值作为服务器端数组的元素(3个不同的数组元素)。但是,如果这些值如下所示:

  addr1 ='TEST,TEST XXX'
addr2 ='YYY ZZZ,11111 '
addr3 ='ZZZ KKK,TEST'

然后提交表单数据变成:

pre $ address ='TEST,TEST XXX','YYY ZZZ,11111','ZZZ KKK,TEST'

那么结果数组包含6个完全错误的元素。我相信包含在值中的COMMA字符不会被转义。



对此问题有任何想法。提前致谢...

解决方案

您没有使用数组。

 < input type =textname =address []id = addr1/> 

当您读取数据时,您将拥有一个没有任何关于逗号或其他字符的数组。 / p>

  $ _ POST ['adddess'] = array(0 =>'TEST,TEST XXX',1 =>'YYY ZZZ,11111',2 =>'ZZZ KKK,TEST'); 

您可以根据索引访问每个项目


I came across a specific and interesting problem yesterday. Assume we have the following html code block:

<div id="addresses">
 <input type="text" name="address" id="addr1" />
 <input type="text" name="address" id="addr2" />
 <input type="text" name="address" id="addr3" />
</div>

While posting this form, input elements that have the same name are joined and values are separated with comma character. For example if we have the values like:

addr1 = 'TEST TEST XXX'
addr2 = 'YYY ZZZ 11111'
addr3 = 'ZZZ KKK TEST '

submitted form post data is as follows:

address = 'TEST TEST XXX', 'YYY ZZZ 11111', 'ZZZ KKK TEST '

then i can get each of these values as elements of an array on the server side (3 different elements of array). But if the values are like:

addr1 = 'TEST, TEST XXX'
addr2 = 'YYY ZZZ, 11111'
addr3 = 'ZZZ KKK, TEST '

then submitted form data becomes:

address = 'TEST, TEST XXX', 'YYY ZZZ, 11111', 'ZZZ KKK, TEST '

then the resulting array contains 6 elements which is totally wrong. I believe COMMA character which is contained in the value is not escaped.

Any ideas on this issue. Thanks in advance...

解决方案

You are not using an array.

Change each input like this:

<input type="text" name="address[]" id="addr1" />

and when you will fetch the data you will have an array without any issue about comma or else.

$_POST['adddess']=array(0=>'TEST, TEST XXX',1=>'YYY ZZZ, 11111',2=>'ZZZ KKK, TEST ');

and you can access each item based on the index

这篇关于Html具有相同名称的多个输入元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆