声明php变量,isset?不是没有?

时间:2014-02-12 19:23:33

标签: php html forms

所以这是我的代码:

<?php 
    if (isset($_POST['submit'])){
        $tall1 = $_POST['tall1'];

        echo '<script>alert("hello!");</script>'; 

    }
?>
<div id="div1">
<form action="" method="POST">
    <input class="form" id="tall1" name"tall1">
    <select class="form" name="type">
        <option>+</option>
        <option>-</option>
        <option>*</option>
        <option>/</option>
    </select>
    <select class="form" name="color">
        <option>white</option>
        <option>black</option>
        <option>red</option>
        <option>green</option>
    </select>
    <input class="form" id="tall2" name"tall2">
    <input type="submit" class="form"  name="submit" value="Submit">
</form>
</div>

这给了我这个错误:注意:未定义的索引:第34行的C:\ blabla \ index.php中的tall1 ,但我确实得到了回音...... 如果我喜欢这个:

<?php 
    if (isset($_POST['submit']) && isset($_POST['tall1'])){
        $tall1 = $_POST['tall1'];

        echo '<script>alert("hello!");</script>'; 

    }
?>

它完全没有回声,因为它不起作用。

有什么问题?

2 个答案:

答案 0 :(得分:4)

您忘记了HTML中的=,因此您的浏览器不会发送tall1字段的数据:

<input class="form" id="tall1" name="tall1">
                                   ^ here

<input class="form" id="tall2" name="tall2">
                                   ^ here too

表单确实已提交,因此$_POST['submit']已存在(由提交按钮创建,写得很好),但不是tall1键: - )

答案 1 :(得分:1)

这似乎是一个错字;你错过了一个等号,这正在形成无效的HTML。

<input class="form" id="tall1" name"tall1">
                                   ^ missing an equals sign

<input class="form" id="tall1" name="tall1">
...
<input class="form" id="tall1" name="tall2">

注意,这两个输入都缺少类型和值。或许this documentation可以服务吗?