【问题标题】:Remember submitted field in form drop down list记住表单下拉列表中的已提交字段
【发布时间】:2014-03-10 08:48:18
【问题描述】:

我在同一页面上有一个 HTML 表单和 PHP 脚本,它根据 HTML 表单的输入计算价格。

在 PHP 脚本运行时存储表单中提供的信息很重要,以便客户可以看到价格的依据。

以下代码存储文本输入:

<input type="number" min="1" max="420" name="stofprijs" width="100" placeholder="Prijs"  value="<?=( isset( $_POST['stofprijs'] ) ? $_POST['stofprijs'] : '' )?>"> euro.

我曾尝试使用以下代码存储下拉列表中的数据:

在顶部:

<?php
    $gordijnsoort = $_POST['gordijnsoort'];
?>

形式:

<select name="gordijnsoort">
    <option value="gordijn" <?php echo $gordijnsoort == 'gordijn' ? 'selected="selected"' : ''; ?>>Gordijn</option>
    <option value="vouwgordijn" <?php echo $gordijnsoort == 'vouwgordijn' ? 'selected="selected"' : ''; ?>>Vouwgordijn</option>
    <option value="ringgordijn" <?php echo $gordijnsoort == 'ringgordijn' ? 'selected="selected"' : ''; ?>>Ringgordijn</option>
</select>

数据存了,但是空窗体一直显示错误:

Undefined index: gordijnsoort

表单应该只在客户提交表单时保存变量,但现在它已经在开始寻找变量了。

有谁知道如何解决这个问题?

【问题讨论】:

    标签: php forms


    【解决方案1】:

    试试这个:

    <?php
        $gordijnsoort = array_key_exists('gordijnsoort', $_POST) ? $_POST['gordijnsoort'] : "";
    ?>
    

    您将收到错误消息,因为第一次调用 $_POST 数组为空并且您尝试访问未定义的键。

    【讨论】:

    • 这完美地解决了我的问题。如果我没看错,'array_key_exists('gordijnsoort', $_POST) ?检查是否有任何数据提交?
    • 间接的。它检查数组是否具有指定的字符串作为键。如果未提交数据,则未指定密钥。
    【解决方案2】:

    那是因为$_POST 是空的。只有在您提交表格后才会填写。所以首先你必须检查issetempty是否存在gordijnsoort

    例如

    $gordijnsoort = isset($_POST['gordijnsoort']) ? $_POST['gordijnsoort'] : '';
    

    【讨论】:

      【解决方案3】:

      如果变量不存在,请将其设置为 NULL。

      $gordijnsoort = isset($_POST['gordijnsoort']) ? $_POST['gordijnsoort'] : NULL;
      

      【讨论】:

        【解决方案4】:

        我认为你必须检查$_POST['gordijnsoort'] isset。您的代码应如下所示:

        $gordijnsoort = "";
        if(isset($_POST['gordijnsoort'])
            $gordijnsoort = $_POST['gordijnsoort'];
        

        这将防止在发送表单之前调用不存在的索引。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-01-06
          • 1970-01-01
          • 2012-05-13
          • 1970-01-01
          • 1970-01-01
          • 2014-08-07
          • 2019-05-27
          相关资源
          最近更新 更多