html和php中的组合框
如果组合框选择了Archers,浏览器将正确回显,但如果组合框未选择Archers,浏览器将回显,我想知道我的语法是否错误 错。错误:未定义索引文本名称 结构如下:html和php中的组合框,php,html,Php,Html,如果组合框选择了Archers,浏览器将正确回显,但如果组合框未选择Archers,浏览器将回显,我想知道我的语法是否错误 错。错误:未定义索引文本名称 结构如下: <form action="server.php" method="POST"> <img src="images/logo.png" class="logo"> <div class="container"> <h1>Account D
<form action="server.php" method="POST">
<img src="images/logo.png" class="logo">
<div class="container">
<h1>Account Details</h1>
<br>
<label class="username">Username</label>
<input type="text" name="text_username" class="text_user" placeholder="Enter username">
<label class="password">Password</label>
<input type="text" name="text_password" class="text_pass" placeholder="Enter password">
<label class="email">Email</label>
<input type="text" name="text_email" class="text_email" placeholder="Enter email">
<label class="cname">Character Name</label>
<input type="text" name="text_cname" class="text_cname" placeholder="Enter Character Name">
<label class="character">Select Character</label>
<select class="names" name="text_hname">
<option>Archer</option>
<option>Barbarian</option>
<option>Balloon</option>
<option>Witch</option>
<option>Spirit</option>
<option>Hog Rider</option>
<option>Minion</option>
</select>
<img src="images/">
<br>
<input type="submit" class="submit" name="submit">
</div>
</form>
//option
$hero = $_POST['text_hname'];
if (isset($_POST['text_hname'])) {
if ($hero == 'Archers') {
echo "Correct";
} else {
echo "wrong";
}
}
问题是,如果在检查是否设置了text_hname之前尝试分配$hero,则可能无法定义它 建议的重构:
if (isset($_POST['text_hname'])) {
$hero = $_POST['text_hname'];
if ($hero == 'Archers') {
echo "Correct";
}
else
{
echo "wrong";
}
}
$\u POST['text\u hname']将返回选定的选项值,而不是选项名称
修改您的选择,如下所示:
<select class="names" name="text_hname">
<option value="Archer">Archer</option>
<option value="Barbarian">Barbarian</option>
<option value="Balloon">Balloon</option>
<option value="Witch">Witch</option>
<option value="Spirit">Spirit</option>
<option value="Hog_Rider">Hog Rider</option>
<option value="Minion">Minion</option>
</select>
编辑:可能是因为您的$\u POST['text\u hname']有空格。尝试在$\u POST['text\u hname'上修剪
希望对您有所帮助。这里有问题吗?看起来您在知道该数组键是否存在之前正在引用它。看见您可能还需要包含HTML代码。是否通过POST将参数文本\u hname发送到此文件?@JulianSchmuckli我不知道:我是这门语言的初学者。我现在正在练习。我们可以看到。给我们看一下你的表格。当然它能消除你原来未经编辑的帖子中的错误吗?由于您已经编辑了它,问题显然是您的表单没有首先发布值。如果我选择archers,浏览器将如何响应if语句?我将使用javascript还是否?我现在不在笔记本电脑前,所以现在无法整理您的表单,但需要做一些工作以确保您实际发布了select元素中的值。请注意:如果省略[value]属性,则该值取自option元素的文本内容。-注意:如果省略了[value]属性,则该值取自option元素的文本内容-
//Your select in form needs values. Same values that you are going to compare.
<select class="names" name="text_hname">
<option value="Archer">Archer</option>
<option value="Barbarian">Barbarian</option>
<option value="Balloon">Balloon</option>
<option value="Witch">Witch</option>
<option value="Spirit">Spirit</option>
<option value="HogRider">Hog Rider</option>
<option value="Minion">Minion</option>
</select>
//Php code
if (isset($_POST['text_hname'])) {
$hero = $_POST['text_hname'];
if ($hero == 'Archer') { //Its Archer, not Archers
echo "Correct";
}
else
{
echo "wrong";
}
}
//Your select in form needs values. Same values that you are going to compare.
<select class="names" name="text_hname">
<option value="Archer">Archer</option>
<option value="Barbarian">Barbarian</option>
<option value="Balloon">Balloon</option>
<option value="Witch">Witch</option>
<option value="Spirit">Spirit</option>
<option value="HogRider">Hog Rider</option>
<option value="Minion">Minion</option>
</select>
//Php code
if (isset($_POST['text_hname'])) {
$hero = $_POST['text_hname'];
if ($hero == 'Archer') { //Its Archer, not Archers
echo "Correct";
}
else
{
echo "wrong";
}
}