Суперглобальный $_POST не проходит (1 и 1)

Я только что сделал базовую страницу формы, и через Aptana, WAMP и через базовую размещенную страницу 1 и 1 я не могу заставить поля формы проходить через суперглобальный $_POST.

Вот страница index.html:

<html>
<head>
    </head>
    <body>
        <p>Type in the areas</p>
    <form action="keywords.php" method="POST">
        <label for="Area1"> 1:</label>
        <input type="text" id="Area1" name="first area /"><br />
        <label for="Area1"> 2:</label>
        <input type="text" id="Area2" name="second area /"><br />
        <label for="Area1"> 3:</label>
        <input type="text" id="Area3" name="third area /"><br />
        <label for="Area1"> 4:</label>
        <input type="text" id="Area4" name="fourth area /"><br />
        <label for="Area1"> 5:</label>
        <input type="text" id="Area5" name="fifth area /"><br />
        <label for="Area1"> 6:</label>
        <input type="text" id="Area6" name="sixth area /"><br />
        <label for="Area1"> 7:</label>
        <input type="text" id="Area7" name="seventh area /"><br />
        <label for="Area1"> 8:</label>
        <input type="text" id="Area8" name="eighth area /"><br />
            <input type="submit" value="Run" name="Run">
            </form>
    </body>
</html>
?>

Который переходит в keywords.php

<?php

 if(isset($_POST['submit'])){
     echo "test";


    $area1 = $_POST['Area1'];
    $area2 = $_POST['Area2'];
    $area3 = $_POST['Area3'];
    $area4 = $_POST['Area4'];
    $area5 = $_POST['Area5'];
    $area6 = $_POST['Area6'];
    $area7 = $_POST['Area7'];
    $area8 = $_POST['Area8'];


    echo $area1;
 }
 ?>

Господи, что я делаю не так. Быть нежным. PHP 5.3.4


person Jack Reed    schedule 20.03.2011    source источник


Ответы (3)


Переменные вставляются в $_POST на основе имени. Так что это будет $_POST['first area'].

Кроме того, я не знаю, плохое ли это копирование, но внутри имени не должно быть косых черт... они должны быть вне кавычек. Например:

<input type="text" id="Area1" name="first area" /><br />
person Thomas    schedule 20.03.2011

Ошибаетесь, в вашем PHP-коде вы ссылаетесь на значение, которое вы указали в атрибуте идентификатора HTML, а не на атрибут имени элементов формы. Браузер передает атрибут name как имя элемента формы. Попробуйте $_POST['первая область'] и т. д. :)

person Jeremy    schedule 20.03.2011

Фактически вы можете передать все входные данные как один массив.

Вот пример.

<html>
<head>
    </head>
    <body>
        <p>Type in the areas</p>
    <form action="keywords.php" method="POST">
        <label for="Area1"> 1:</label>
        <input type="text" id="Area1" name="area[]"><br />
        <label for="Area1"> 2:</label>
        <input type="text" id="Area2" name="area[]"><br />
        <label for="Area1"> 3:</label>
        <input type="text" id="Area3" name="area[]"><br />
        <label for="Area1"> 4:</label>
        <input type="text" id="Area4" name="area[]"><br />
        <label for="Area1"> 5:</label>
        <input type="text" id="Area5" name="area[]"><br />
        <label for="Area1"> 6:</label>
        <input type="text" id="Area6" name="area[]"><br />
        <label for="Area1"> 7:</label>
        <input type="text" id="Area7" name="area[]"><br />
        <label for="Area1"> 8:</label>
        <input type="text" id="Area8" name="area[]"><br />
            <input type="submit" value="Run" name="Run">
            </form>
    </body>
</html>

Вы получите одну переменную: $_POST['area'] Эта переменная представляет собой массив из 8 значений, который вы можете затем повторить.

person Stephen Walcher    schedule 20.03.2011