我制作了一份表格,其中包含联系信息并将其发送至电子邮件。它的工作期望我有超过2000种选择的城市。城市下拉发送值,这只是一个数字。我希望表单发送城市,这是HTML元素内容而不是属性中的值编号。我不想用城市替换2000个不同的值。我知道循环可行,但我不知道如何创建它。
HTML -
<option value="2" >Los Angeles - CA</option>
PHP -
$city = $_REQUEST['city'] ;
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
mail( "$webmaster_email", "Submission", "$city,"From:$email" );
header( "Location: $thankyou_page" );
答案 0 :(得分:1)
使用数组! 例如:
<?php
$cities = array(
'0' => 'New York - NY',
'1' => '...'
'2' => '...'
);
if (isset($cities[$_REQUEST['city']])) {
$city = $cities[$_REQUEST['city']];
} else {
$city = $_REQUEST['city'];
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
mail( "$webmaster_email", "Submission", "$city,"From:$email" );
header( "Location: $thankyou_page" );
}
?>
答案 1 :(得分:1)
我相信你想从option
发送文本而不是值。正确?
我建议您在表单上创建此元素:<input type='hidden' id='city_name' name='city_name' />
,以便在用户选择所需选项时使用JavaScript保存select
值。然后,在select
上创建和事件,如下所示:
<select onchange="document.getElementById('city_name').value=this.options[this.selectedIndex].text;">
所以你的PHP代码上会有$_POST['city_name']
。
答案 2 :(得分:0)
据推测,您在服务器上生成了<option>
列表,例如一个数组:
$locations = array(
...
2 => 'Los Angeles - CA'
...
);
然后你只需要
$place = $locations[$_REQUEST['city']];
获取选项的文本。
或者,您可以在选项中嵌入完整的城市名称:
<option value="Los Angeles - CA">Lost Angeles - CA</option>