2014-02-12 2 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> 

Это дает мне эту ошибку: Примечание: Undefined индекс: 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 = ""), добавляется ясность в том, как этот элемент используется. –