如何将HTML中的下拉框文本发送到PHP?
我有一个HTML页面,里面有一个表单。然后,表单将发布到一个PHP页面,并在该页面上向用户发送电子邮件。我有一个“状态”下拉框,值为1-58。我的数据库需要这些值。发送电子邮件时,是否有方法获取州名称而不是数字值 我的HTML:如何将HTML中的下拉框文本发送到PHP?,php,html,forms,drop-down-menu,Php,Html,Forms,Drop Down Menu,我有一个HTML页面,里面有一个表单。然后,表单将发布到一个PHP页面,并在该页面上向用户发送电子邮件。我有一个“状态”下拉框,值为1-58。我的数据库需要这些值。发送电子邮件时,是否有方法获取州名称而不是数字值 我的HTML: <Select name="State" id="State" style="width:40px;" > <option value="17"></option> <option value="18">Alaba
<Select name="State" id="State" style="width:40px;" >
<option value="17"></option>
<option value="18">Alabama</option>
<option value="19">Alaska</option>
<option value="20">American Samoa</option>
<option value="21">Arizona</option>
<option value="22">Arkansas</option>
<option value="15">California</option>
<option value="6">Canada</option>
<option value="11">Colorado</option>
<option value="23">Connecticut</option>
<option value="24">Delaware</option>
<option value="25">District Of Columbia</option>
<option value="26">Federated States Of Micronesia</option>
<option value="7">Florida</option>
<option value="27">Georgia</option>
<option value="28">Guam</option>
<option value="29">Hawaii</option>
<option value="30">Idaho</option>
<option value="8">Illinois</option>
<option value="14">Indiana</option>
<option value="31">Iowa</option>
<option value="32">Kansas</option>
<option value="33">Kentucky</option>
<option value="34">Louisiana</option>
<option value="35">Maine</option>
<option value="36">Marshall Islands</option>
<option value="37">Maryland</option>
<option value="38">Massachusetts</option>
<option value="1">Michigan</option>
<option value="5">Minnesota</option>
<option value="39">Mississippi</option>
<option value="40">Missouri</option>
<option value="41">Montana</option>
<option value="42">Nebraska</option>
<option value="43">Nevada</option>
<option value="44">New Hampshire</option>
<option value="12">New Jersey</option>
<option value="45">New Mexico</option>
<option value="46">New York</option>
<option value="13">North Carolina</option>
<option value="47">North Dakota</option>
<option value="4">Ohio</option>
<option value="48">Oklahoma</option>
<option value="49">Oregon</option>
<option value="10">Pennsylvania</option>
<option value="50">Rhode Island</option>
<option value="51">South Carolina</option>
<option value="52">South Dakota</option>
<option value="53">Tennessee</option>
<option value="2">Texas</option>
<option value="54">Utah</option>
<option value="55">Vermont</option>
<option value="3">Virginia</option>
<option value="56">Washington</option>
<option value="57">West Virginia</option>
<option value="9">Wisconsin</option>
<option value="58">Wyoming</option>
</Select>
我收到的邮件是州:1,而不是州:密歇根
谢谢。如果您删除这些值,它将按照您的要求工作。如果没有值属性,则无论选项标记之间存在什么,都将使用实际值 乙二醇 替换
<option value="8">Illinois</option>
用这个
<option>Illinois</option>
value属性是发布到PHP端的内容。在您的情况下,每个状态都分配了一个数值,并将其发布到服务器。只需更改下拉列表,使文本和值相同,如下所示:
<option value="Michigan">Michigan</option>
<option value="New York">New York</option>
...
现在将返回密歇根或纽约等地
实现这一点的唯一其他方法是在PHP中创建一个数组,其中索引是选项的数值,数组值是州名,即密歇根州、纽约州等。。您的前端代码不会更改。然后,您将收到数值,并必须将其映射到此数组
希望这有帮助。有一个数组来控制所有的值。使用同一数组显示下拉选项,然后使用同一数组引用该值
<?php
//Place state array at the top of the file
$states = array(
18 => "Alabama",
19 => "Alaska",
...
);
//Generate select box
if(is_array($states)) {
echo "<select name='state' id='state' style='width:40px'>";
foreach($states as $id => $name) {
echo "<option value='$id'>$name</option>";
}
echo "</select>";
}
//Form POSTed
if(is_array($_POST)) {
//Send email message
$email = "State: ".$states[$_POST['state']];
//Do email sending or message displaying
//Submit to datebase
$query = "INSERT INTO table ('state') VALUES ('".mysqli_escape_string($_POST['state'])."')";
//Do insert into mysql
}
?>
我需要数据库的值。谢谢。你需要它们来建立数据库吗???什么意思?可能使用id=8而不是value=8?在这种情况下,您应该在服务器端获取所有数字和相应的名称,并检查选择了哪一个。您可以将它们放在关联数组中,只需执行如下操作:$selectedName=myArray[$\u GET[State]];您可以制作一个小脚本,比如在msg中get/post state=1……另一种方法是在mysql查询中使用另一个查询,比如:…where state.id=select state.id from state where state.name=$\u get[state];我应该将数组名改为State而不是states吗?只要在其他地方使用相同的名称引用数组名,就可以随意调用数组名。
$_POST['state']
<?php
//Place state array at the top of the file
$states = array(
18 => "Alabama",
19 => "Alaska",
...
);
//Generate select box
if(is_array($states)) {
echo "<select name='state' id='state' style='width:40px'>";
foreach($states as $id => $name) {
echo "<option value='$id'>$name</option>";
}
echo "</select>";
}
//Form POSTed
if(is_array($_POST)) {
//Send email message
$email = "State: ".$states[$_POST['state']];
//Do email sending or message displaying
//Submit to datebase
$query = "INSERT INTO table ('state') VALUES ('".mysqli_escape_string($_POST['state'])."')";
//Do insert into mysql
}
?>