【发布时间】:2016-04-01 20:32:18
【问题描述】:
我正在为 wordpress 小部件构建一个非常小的表单。该表单只是一个下拉选择输入,允许用户选择他们的业务类型 - 然后将其存储在数据库的 wp_usermeta 表中。
下拉菜单实际上是在注册时选择的,所以这种形式更多的是用户更改值的机会。
这是我用来创建表单的 php:
<?php
$user = wp_get_current_user();
$selected = get_user_meta( $user->ID, 'i_am_a', true );
?>
<form method="post">
<h3>I am a...</h3>
<select name="i_am_a" id="i_am_a">
<option value="musician" autocomplete="off" <?php echo ($selected == "musician")? 'selected="selected"' : '' ?>>Musician/Artist</option>
<option value="band" autocomplete="off" <?php echo ($selected == "band")? 'selected="selected"' : '' ?>>Band</option>
<option value="photographer" autocomplete="off" <?php echo ($selected == "photographer")? 'selected="selected"' : '' ?>>Photographer</option>
<option value="business" autocomplete="off" <?php echo ($selected == "business")? 'selected="selected"' : '' ?>>Small Business</option>
<option value="other" autocomplete="off" <?php echo ($selected == "other")? 'selected="selected"' : '' ?>>Other</option>
</select>
<input type="submit" name="submit" value="change" class="button"/>
</form>
<?php
$i_am_a = $_POST['i_am_a'];
update_user_meta( $user->ID, 'i_am_a', $i_am_a );
?>
注意:未定义索引:/home/.../layers-whitelabel.php 第 90 行中的 i_am_a
第90行如下:
$i_am_a = $_POST['i_am_a'];
我怎样才能摆脱这个错误?
【问题讨论】:
-
由于这个表单没有
action,我假设如果你提交错误就没有了,对吧?如果是这样,请考虑一下,您正在尝试在尚未发送的表单上使用$_POST,因此,undefined用于该键... -
if (!empty($_POST["i_am_a"]))
-
@FirstOne 是的,一旦提交,错误就会消失。我在表单中添加了 action="" 但仍然显示错误。
-
@wuno 我该把 sn-p 放在哪里?