Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
html和php中的组合框_Php_Html - Fatal编程技术网

html和php中的组合框

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

如果组合框选择了Archers,浏览器将正确回显,但如果组合框未选择Archers,浏览器将回显,我想知道我的语法是否错误

错。错误:未定义索引文本名称

结构如下:

<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";
    }
}