Php 如何将用户在下拉列表中选择的选项作为变量保存和使用?
我需要做的是让用户在下拉列表中选择。然后,当用户单击submit时,我将有一个if..else语句,它根据用户在下拉列表中选择的内容执行不同的代码Php 如何将用户在下拉列表中选择的选项作为变量保存和使用?,php,variables,submit,options,Php,Variables,Submit,Options,我需要做的是让用户在下拉列表中选择。然后,当用户单击submit时,我将有一个if..else语句,它根据用户在下拉列表中选择的内容执行不同的代码 Shipping Provider: <select id='ship' name='ship'> <option value="val1">Value1</option> <option value="val2">Value2</option> <option value="val3
Shipping Provider: <select id='ship' name='ship'>
<option value="val1">Value1</option>
<option value="val2">Value2</option>
<option value="val3">Value3</option>
<option value="val4">Value4</option>
</select>
但不知怎么的,它不起作用了。谁能告诉我出了什么问题吗?我不确定,但是你不需要检查选项值吗
if($dropdownvalue == 'val1'){
....
}
为了进行调试,您还可以回显$dropdownvalue的值,以查看它实际具有的值
if($dropdownvalue == 'val1'){
....
}
为了进行调试,您还可以回显$dropdownvalue的值以查看它实际具有的值,因为您已经在下拉选项中设置了一个值,它将是该值 将代码更改为:
if(isset($_POST['extract'])){
$dropdownvalue = $_POST['ship'];
if($dropdownvalue === 'val1'){
EXECUTE CODE HERE
}
else if($dropdownvalue === 'val2'){
EXECUTE CODE HERE
}
else if($dropdownvalue === 'val3'){
EXECUTE CODE HERE
}
else{
EXECUTE CODE HERE
}
}
一点解释
当您在option元素上使用value属性时,将使用attribtute值,这在代码中也会发生。当您不使用value属性时,将使用option元素之间的字符串
因此,您的html将如下所示:
if(isset($_POST['extract'])){
$dropdownvalue = $_POST['ship'];
if($dropdownvalue == 'Value1'){
EXECUTE CODE HERE
}
else if($dropdownvalue == 'Value2'){
EXECUTE CODE HERE
}
else if($dropdownvalue == 'Value3'){
EXECUTE CODE HERE
}
else{
EXECUTE CODE HERE
}
}
<option>string</option>
<option value="1">String</option>
现在,您将在php中获得的值是
1
,这非常有用,在我看来,您应该始终使用value属性。因为您在下拉选项中设置了一个值,它将是该值
将代码更改为:
if(isset($_POST['extract'])){
$dropdownvalue = $_POST['ship'];
if($dropdownvalue === 'val1'){
EXECUTE CODE HERE
}
else if($dropdownvalue === 'val2'){
EXECUTE CODE HERE
}
else if($dropdownvalue === 'val3'){
EXECUTE CODE HERE
}
else{
EXECUTE CODE HERE
}
}
一点解释
当您在option元素上使用value属性时,将使用attribtute值,这在代码中也会发生。当您不使用value属性时,将使用option元素之间的字符串
因此,您的html将如下所示:
if(isset($_POST['extract'])){
$dropdownvalue = $_POST['ship'];
if($dropdownvalue == 'Value1'){
EXECUTE CODE HERE
}
else if($dropdownvalue == 'Value2'){
EXECUTE CODE HERE
}
else if($dropdownvalue == 'Value3'){
EXECUTE CODE HERE
}
else{
EXECUTE CODE HERE
}
}
<option>string</option>
<option value="1">String</option>
现在你在PHP中得到的值是“代码>1”/代码>,这是非常有用的,在我的选择中,你应该总是使用value属性。
你也可以考虑在这种情况下使用开关caseif(isset($_POST['extract'])){
if(isset($_POST['ship'] and !empty($_POST['ship'])){
$dropdownvalue = $_POST['ship'];
switch($dropdownvalue){
case 'val1' :
// Code here
break;
case 'val2' :
// Code here
break;
case 'val3' :
// Code here
break;
case 'val4' :
// Code here
break;
default :
// Code here
}
}
}
你也可以考虑在这种情况下使用开关盒
if(isset($_POST['extract'])){
if(isset($_POST['ship'] and !empty($_POST['ship'])){
$dropdownvalue = $_POST['ship'];
switch($dropdownvalue){
case 'val1' :
// Code here
break;
case 'val2' :
// Code here
break;
case 'val3' :
// Code here
break;
case 'val4' :
// Code here
break;
default :
// Code here
}
}
}
您将拥有选定选项的值,而不是文本
if(isset($_POST['extract'])){
$dropdownvalue = $_POST['ship'];
if($dropdownvalue == 'val1'){
EXECUTE CODE HERE
}
else if($dropdownvalue == 'val2'){
EXECUTE CODE HERE
}
else if($dropdownvalue == 'val3'){
EXECUTE CODE HERE
}
else{
EXECUTE CODE HERE
}
}
您将拥有选定选项的值,而不是文本
if(isset($_POST['extract'])){
$dropdownvalue = $_POST['ship'];
if($dropdownvalue == 'val1'){
EXECUTE CODE HERE
}
else if($dropdownvalue == 'val2'){
EXECUTE CODE HERE
}
else if($dropdownvalue == 'val3'){
EXECUTE CODE HERE
}
else{
EXECUTE CODE HERE
}
}