Php 将下拉菜单值传递到CSV

Php 将下拉菜单值传递到CSV,php,html,csv,if-statement,Php,Html,Csv,If Statement,我有一个表单,有三个下拉菜单。在html中,出于验证目的,选项被命名为0、1和2,而实际的内联文本是不同的选项 当我将值推送到.csv时,我编写了几个if语句来重命名保存的变量,而不是让它只推数字。我已经让它工作了,但我想我应该将它们插入一个函数中,然后调用该函数,而不是让一堆if语句。但是,当我这样做时,用户选择的任何选项的值都会恢复为0、1或2存储在.csv文件中 我的问题是,我的函数缺少什么导致它只选择编号的值 HTML: <select id="semesterSelector"

我有一个表单,有三个下拉菜单。在html中,出于验证目的,选项被命名为0、1和2,而实际的内联文本是不同的选项

当我将值推送到.csv时,我编写了几个
if语句来重命名保存的变量,而不是让它只推数字。我已经让它工作了,但我想我应该将它们插入一个函数中,然后调用该函数,而不是让一堆
if语句
。但是,当我这样做时,用户选择的任何选项的值都会恢复为0、1或2存储在.csv文件中

我的问题是,我的函数缺少什么导致它只选择编号的值

HTML:

<select id="semesterSelector" name="semesterSelector" onchange="checkPage5()">
<option value="0">Select</option>
<option value="1">Fall</option>
<option value="2">Spring</option>
</select> 
$semesterSelector = $_POST["semesterSelector"];

function semesterNameChange(){
if($semesterSelector == 1)
    {
        $semesterSelector = "Fall";
    }
    elseif($semesterSelector == 2)
        {
            $semesterSelector = "Spring";
        }
}
semesterNameChange();
$csvData = [...] $semesterSelector [...]
将值推送到Csv:

<select id="semesterSelector" name="semesterSelector" onchange="checkPage5()">
<option value="0">Select</option>
<option value="1">Fall</option>
<option value="2">Spring</option>
</select> 
$semesterSelector = $_POST["semesterSelector"];

function semesterNameChange(){
if($semesterSelector == 1)
    {
        $semesterSelector = "Fall";
    }
    elseif($semesterSelector == 2)
        {
            $semesterSelector = "Spring";
        }
}
semesterNameChange();
$csvData = [...] $semesterSelector [...]

在PHP中,函数有自己的作用域。这基本上意味着,如果您试图从函数外部访问变量,则需要将它们传入(在括号之间),或者需要使用
global
以允许在函数范围内使用外部变量。在这种情况下,只需在函数顶部添加
global$semestselector

function semesterNameChange(){
    global $semesterSelector;
    if($semesterSelector == 1)
    {
        $semesterSelector = "Fall";
    }
    elseif($semesterSelector == 2)
    {
        $semesterSelector = "Spring";
    }
}
semesterNameChange();
另一种方法是将值直接传递给函数:

function semesterNameChange($selectValue) {
    if( $selectValue == 1 )
    {
        return "Fall";
    }
    elseif ( $selectValue == 2 )
    {
        return "Spring";
    }
}

$semesterSelector = semesterNameChange($_POST["semesterSelector"]);

你能确定你的
标签上有method=“POST”吗?在松散类型语言中说==1也会给您带来麻烦。让我们确保我们有一个整数,并严格计算它:

$semesterSelector = (integer) $_POST["semesterSelector"];

function semesterNameChange(){
    global $semesterSelector;
    if ($semesterSelector === 1)

先生,你是我今天的英雄:)