Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
Php 如何将用户在下拉列表中选择的选项作为变量保存和使用?_Php_Variables_Submit_Options - Fatal编程技术网

Php 如何将用户在下拉列表中选择的选项作为变量保存和使用?

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

我需要做的是让用户在下拉列表中选择。然后,当用户单击submit时,我将有一个if..else语句,它根据用户在下拉列表中选择的内容执行不同的代码

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属性。

你也可以考虑在这种情况下使用开关case

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'])){
    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
     }
   }