【问题标题】:Passing Drop Down Menu Value to CSV将下拉菜单值传递给 CSV
【发布时间】:2016-10-25 15:34:13
【问题描述】:

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

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

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

HTML:

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

PHP:

$semesterSelector = $_POST["semesterSelector"];

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

将价值推送到 Csv:

$csvData = [...] $semesterSelector [...]

【问题讨论】:

    标签: php html csv if-statement


    【解决方案1】:

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

    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"]);
    

    【讨论】:

    • 你,先生,今天是我的英雄 :)
    【解决方案2】:

    你能确定你的&lt;form&gt; 标签有method="POST"吗?用松散类型的语言说 == 1 也会给你带来麻烦。让我们确保我们有一个整数并严格评估它:

    $semesterSelector = (integer) $_POST["semesterSelector"];
    
    function semesterNameChange(){
        global $semesterSelector;
        if ($semesterSelector === 1)
    

    【讨论】:

      猜你喜欢
      • 2014-06-26
      • 2012-10-24
      • 2018-01-10
      • 1970-01-01
      • 2015-10-04
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      相关资源
      最近更新 更多