我在同一页面上有一个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
表单应该只在客户提交表单时保存变量,但现在它已经在开始时查找变量。
有谁知道如何解决这个问题?
答案 0 :(得分:1)
试试这个:
<?php
$gordijnsoort = array_key_exists('gordijnsoort', $_POST) ? $_POST['gordijnsoort'] : "";
?>
您将收到错误,因为首次调用时$_POST
数组为空,您尝试访问未定义的键。
答案 1 :(得分:1)
多数民众赞成因为$_POST
是空的。只有在您提交表单后才能填写。首先,如果isset
存在,则必须先与empty
,gordijnsoort
进行核对。
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。