记住表单下拉列表中提交的字段

时间:2014-03-10 08:48:19

标签: php forms

我在同一页面上有一个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

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

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

4 个答案:

答案 0 :(得分:1)

试试这个:

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

您将收到错误,因为首次调用时$_POST数组为空,您尝试访问未定义的键。

答案 1 :(得分:1)

多数民众赞成因为$_POST是空的。只有在您提交表单后才能填写。首先,如果isset存在,则必须先与emptygordijnsoort进行核对。

E.g。

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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

这将在发送表单之前阻止callign non existing index。