Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 提交时,带选项的选择表单如何传递多个参数?_Javascript_Php_Html_Forms - Fatal编程技术网

Javascript 提交时,带选项的选择表单如何传递多个参数?

Javascript 提交时,带选项的选择表单如何传递多个参数?,javascript,php,html,forms,Javascript,Php,Html,Forms,我有一个简单的HTML表单,带有select和options,用来发送时区的详细信息 提交表单时,我希望传递/发送几个值。 我找到了不同的方法示例,但没有一个完全适合我的需要 目前,下表只能发送1个参数作为值: 假设已经提交了first choice,这里的值send是时区ID:1 即: 我希望,无论选择什么选项来传递更多值,例如: 希望您能帮助我找到一种简单的方法,使用PHP或Javascript通过GET表单传递多个参数 (GMT-12:00)国际日期线西 (GMT-11:0

我有一个简单的HTML表单,带有select和options,用来发送时区的详细信息

提交表单时,我希望传递/发送几个值。 我找到了不同的方法示例,但没有一个完全适合我的需要

  • 目前,下表只能发送1个参数作为值: 假设已经提交了first choice,这里的值send是时区ID:1
即:

  • 我希望,无论选择什么选项来传递更多值,例如:

希望您能帮助我找到一种简单的方法,使用PHP或Javascript通过GET表单传递多个参数


(GMT-12:00)国际日期线西
(GMT-11:00)萨摩亚中途岛
(GMT-10:00)夏威夷
(GMT-09:00)阿拉斯加
(GMT-08:00)太平洋时间(美国和加拿大)
(GMT-08:00)下加利福尼亚州提华纳
(GMT-07:00)亚利桑那州
(GMT-07:00)奇瓦瓦,拉巴斯,马萨特兰
(GMT-07:00)山地时间(美国和加拿大)
(GMT-06:00)中美洲
(GMT-06:00)中部时间(美国和加拿大)
(GMT-06:00)瓜达拉哈拉,墨西哥城,蒙特雷
(GMT-06:00)萨斯喀彻温省
(GMT-05:00)波哥大、利马、基多、里约布兰科
(GMT-05:00)东部时间(美国和加拿大)
(GMT-05:00)印第安纳州(东部)
(GMT-04:00)大西洋时间(加拿大)
(GMT-04:00)加拉加斯,拉巴斯
(GMT-04:00)马瑙斯
(GMT-04:00)圣地亚哥
(GMT-03:30)纽芬兰
(GMT-03:00)巴西利亚
(GMT-03:00)布宜诺斯艾利斯,乔治敦
(GMT-03:00)格陵兰
(GMT-03:00)蒙得维的亚
(GMT-02:00)大西洋中部
(GMT-01:00)佛得角是。
(GMT-01:00)亚速尔群岛
(格林尼治标准时间+00:00)卡萨布兰卡,蒙罗维亚,雷克雅未克
格林威治标准时间:都柏林、爱丁堡、里斯本、伦敦
阿姆斯特丹、柏林、伯尔尼、罗马、斯德哥尔摩、维也纳
(GMT+01:00)贝尔格莱德、布拉迪斯拉发、布达佩斯、卢布尔雅那、布拉格
(GMT+01:00)布鲁塞尔、哥本哈根、马德里、巴黎
萨拉热窝、斯科普里、华沙、萨格勒布
(格林尼治标准时间+01:00)中西部非洲
(格林尼治标准时间+02:00)安曼
(GMT+02:00)雅典、布加勒斯特、伊斯坦布尔
(格林尼治标准时间+02:00)贝鲁特
(格林尼治标准时间+02:00)开罗
(格林尼治标准时间+02:00)比勒陀利亚哈拉雷
(GMT+02:00)赫尔辛基、基辅、里加、索非亚、塔林、维尔纽斯
(格林尼治时间+02:00)耶路撒冷
(格林尼治时间+02:00)明斯克
(格林尼治标准时间+02:00)温得和克
(格林尼治时间+03:00)科威特、利雅得、巴格达
(GMT+03:00)莫斯科,圣彼得堡,伏尔加格勒
(格林尼治时间+03:00)内罗毕
(格林尼治时间+03:00)第比利斯
(格林尼治时间+03:30)德黑兰
(格林尼治标准时间+04:00)阿布扎比,马斯喀特
(格林尼治标准时间+04:00)巴库
(格林尼治时间+04:00)埃里温
(格林尼治时间+04:30)喀布尔
(格林尼治标准时间+05:00)叶卡捷琳堡
(格林尼治标准时间+05:00)伊斯兰堡、卡拉奇、塔什干
(格林尼治时间+05:30)斯里兰卡贾亚瓦尔德纳普拉
(GMT+05:30)新德里孟买加尔各答钦奈
(格林尼治时间+05:45)加德满都
(格林尼治标准时间+06:00)新西伯利亚阿拉木图
(格林尼治标准时间+06:00)达卡阿斯塔纳
(格林尼治时间+06:30)仰光(仰光)
(GMT+07:00)曼谷,河内,雅加达
(格林尼治时间+07:00)克拉斯诺亚尔斯克
(GMT+08:00)北京、重庆、香港、乌鲁木齐
(GMT+08:00)新加坡吉隆坡
(格林尼治标准时间+08:00)乌兰巴托伊尔库茨克
(格林尼治标准时间+08:00)珀斯
(格林尼治标准时间+08:00)台北
(GMT+09:00)东京札幌大阪
(格林尼治时间+09:00)首尔
(格林尼治时间+09:00)雅库茨克
(格林尼治时间+09:30)阿德莱德
(格林尼治时间+09:30)达尔文
(格林尼治时间+10:00)布里斯班
(格林尼治标准时间+10:00)堪培拉、墨尔本、悉尼
(格林尼治标准时间+10:00)霍巴特
(格林尼治标准时间+10:00)关岛莫尔兹比港
(格林尼治时间+10:00)海参崴
(格林尼治标准时间+11:00)新喀里多尼亚所罗门群岛马加丹
(格林尼治时间+12:00)奥克兰,惠灵顿
(格林尼治标准时间+12:00)斐济,堪察加半岛,马歇尔群岛。
(格林尼治时间+13:00)努库阿洛法
与表单一起发送所有数据不同,只需将时区值
1
2
等与表单一起发送即可。想法是,维护一个时区数组,如下所示:

$timeZoneData = array(
    1 => array(
        'gmtAdjustment' => "GMT-12:00",
        'useDaylightTime' => "0",
        'timeshift' => "-12"
    ),
    2 => array(
        'gmtAdjustment' => "GMT-11:00",
        'useDaylightTime' => "0",
        'timeshift' => "-11"
    )
    ...
);
<form method="GET" action="">
    <select name="TZ">
        <option value="1">(GMT-12:00) International Date Line West</option>
        <option value="2">(GMT-11:00) Midway Island, Samoa</option>
        ...
    </select>
  ...
</form>
if(isset($_GET['submit'])){
    $gmtAdjustment = $timeZoneData[$_GET['TZ']]['gmtAdjustment'];
    $useDaylightTime = $timeZoneData[$_GET['TZ']]['useDaylightTime'];
    $timeshift = $timeZoneData[$_GET['TZ']]['timeshift'];

    ...
}
注意:数组中的键是时区值,即
s的
属性中的任何值

然后像这样重构表单:

$timeZoneData = array(
    1 => array(
        'gmtAdjustment' => "GMT-12:00",
        'useDaylightTime' => "0",
        'timeshift' => "-12"
    ),
    2 => array(
        'gmtAdjustment' => "GMT-11:00",
        'useDaylightTime' => "0",
        'timeshift' => "-11"
    )
    ...
);
<form method="GET" action="">
    <select name="TZ">
        <option value="1">(GMT-12:00) International Date Line West</option>
        <option value="2">(GMT-11:00) Midway Island, Samoa</option>
        ...
    </select>
  ...
</form>
if(isset($_GET['submit'])){
    $gmtAdjustment = $timeZoneData[$_GET['TZ']]['gmtAdjustment'];
    $useDaylightTime = $timeZoneData[$_GET['TZ']]['useDaylightTime'];
    $timeshift = $timeZoneData[$_GET['TZ']]['timeshift'];

    ...
}

这里有另一个可能会解决你问题的答案:@Steven那是另一个问题。他希望从一个选项中选择多个值,而不是多个选项。你好,保罗,谢谢你的回答。我觉得你的方法很有用,我会同意的。所有人:我不会将我的帖子设置为重复,因为在之前的其他回答中没有演示过这种方式