我正在尝试创建一个共享的购物清单webapp,作为学习HTML和PHP的一种方式。我正在尝试关注these directions来创建我的项目添加表单。
我正在尝试让我的页面在表单下显示提交的数据作为概念证明,但不会显示任何内容。这是我的代码,保存在\ XAMPP \ htdocs \:
中<html>
<head>
<title>Grocery List</title>
</head>
<body>
<?php
$category = $item = "";
?>
<form id='additem' method='post'>
<fieldset>
<legend>Add Item</legend>
<table>
<tr>
<td><label for='Category'>Category: </label></td>
<td><input type='text' name='Category' list='categories' value='<?php echo $category;?>' /></td>
<datalist id='categories'>
<option value='Protein'>
<option value='Produce'>
<option value='Baked Goods'>
<option value='Dry/Canned'>
<option value='Household'>
</datalist>
</tr><tr>
<td><label for='item'>Name: </label></td>
<td><input type='text' name='item' value='<?php echo $item;?>' /></td>
</tr><tr>
<td></td><td><input type='Submit' value='Submit' /></td>
</tr>
</table>
</fieldset>
</form>
<?php
echo "Your Input:";
echo $category;
echo $item;
?>
但是当我在浏览器中打开该页面并输入一些信息时,我得到的是#34;您的输入:&#34;接下来是空白区域,我的信息应输出。
有人可以看到我哪里出错吗?
答案 0 :(得分:3)
这是因为您实际上并未处理提交的$_POST
变量。
按如下方式更改您的代码:
<?php
// Load the posted values into their respective variables
$category = $_POST['Category'];
$item = $_POST['item'];
echo "Your Input:";
echo $category;
echo $item;
?>
修改强>
由于您已更新了问题,因此我需要更新您应该在哪些位置进行更改。
现在您已在页面顶部声明了变量(这很好)。但是你现在应该从post变量中获取它们,并包括某种检查以查看它是否被发布(以避免警告/通知):
位于文件顶部:
<?php
$category = '';
$item = '';
// Check if the form is posted...
if (isset($_POST['item'])) {
// Load the posted values into the variables
$category = $_POST['Category'];
$item = $_POST['item'];
// .. do the same for any other form values
}
?>
您可以找到使用extract($_POST)
的代码示例或建议,但我强烈建议against using extract()。
答案 1 :(得分:0)
您的选项标签格式不正确。
<option value='Protein'>Protein</option>
<option value='Produce'>Produce</option>
<option value='Baked Goods'>Baked Goods</option>
<option value='Dry/Canned'>Dry/Canned</option>
<option value='Household'>Household</option>
在这种情况下,<option>
和</option>
标记之间的内容将显示在屏幕上,而value=stuff
将保存为&#34;的值。分类&#34;