2014-02-12 61 views
0

因此,这里是我的代码:声明php变量,isset?不是isset?

<?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> 

这给了我这个错误:注意:未定义指数:tall1在C:\布拉布拉\的index.php上线34 ,但我得到回音... ,如果我这样做:

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

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

    } 
?> 

它没有回音都不像它无法正常工作。

什么问题?

回答

4

你忘了在你的HTML一个=,使你的浏览器不为tall1现场发送数据:

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

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

形式确实提交了,所以$_POST['submit']存在(由您的提交按钮创建的,写得很好),但不是tall1键:-)

+0

ofc a typo,thanks :) – Koiski

+1

+1:你在我做了几秒钟之前就得到了你的答案,并且你解释了表单提交过程 –

+0

Eheh,SO经常是一个键盘输入比赛,不幸的是你对这个时间。 –

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将服务?

+0

ofc a typo,thanks :) – Koiski

+1

输入的默认类型是文本。 – ElefantPhace

+1

@ElefantPhace - 正确。他也不需要在输入标签中定义一个值。然而,我认为包含两者(即使它最终是'type =“text”'和'value =“”')为元素的使用方式增加了清晰度。 –