Как использовать тег формы, если содержимое организовано в тег таблицы?

0

Я попытался использовать таблицу и нашел ее забавой, потому что мне намного легче организовать контент, а не просто использовать простые div, но теперь моя форма не будет работать, и я не уверен, в чем проблема.

HTML:

<?php
        include('connect.php');
    ?>

    <div class="signUpWrapper">
    <h1 class="contentMainHeader" style="text-align: center"> Create a new Admin </h1>
    <form method="post" name="registry" action="main index.php?page=thankyouPage">
    <table class="signUpTable">
        <tr style="height: 5em">
            <td>
            <div>
            <h1 class="userHeader">Name</h1>
            </div>
            <div>
            <input type="text" name="firstName" class="textbox" placeholder="First Name"/>&nbsp&nbsp
            <input type="text" name="lastName" class="textbox" placeholder="Last Name"/>
            </div>
            </td>
        </tr>

        <tr style="height: 5em">
            <td>
            <div>
            <h1 class="userHeader">Email</h1>
            </div>
            <div>
            <input type="text" name="email" class="textbox" placeholder="Email">&nbsp&nbsp
            <input type="text" name="email2" class="textbox" placeholder="Re-Enter Email"/>
            </div>
            </td>
        </tr>

        <tr style="height: 2em;">
            <td>
            <div>
            <input type="text" name="altEmail" class="textbox" placeholder="Alternate Email">&nbsp&nbsp
            </div>
            </td>
        </tr>

        <tr style="height: 5em">
            <td>
            <div>
            <h1 class="userHeader">Password</h1>
            </div>
            <div>
            <input type="text" name="password" class="textbox" placeholder="Password"/>&nbsp&nbsp
            <input type="text" name="password2" class="textbox" placeholder="Re-Enter Password"/>
            </div>
            </td>
        </tr>

        <tr style="height: 5em">
            <td>
            <div>
            <h1 class="userHeader">Birthday</h1>
            </div>
            <div>
            <select name="month" class="dropDown">
            <option selected>Select Month</option>
            <option> January </option>
            <option> February </option>
            <option> March </option>
            <option> April </option>
            <option> May </option>
            <option> June </option>
            <option> July </option>
            <option> August </option>
            <option> September </option>
            <option> October </option>
            <option> November </option>
            <option> December </option>
            </select>
            <input type="text" name="day" class="dateTextBox" placeholder="Day (dd)"/>&nbsp&nbsp
            <input type="text" name="year" class="dateTextBox" placeholder="Year (yyyy)"/>
            </div>
            </td>
        </tr>

        <tr style="height: 5em">
            <td>
            <div>
            <h1 class="userHeader">Gender</h1>
            </div>
            <select name="gender" class="dropDown">
            <option selected>Select Gender</option>
            <option> Male </option>
            <option> Female </option>
            </select>
            </td>
        </tr>

        <tr style="height: 5em">
            <td>
            <div>
            <h1 class="userHeader">Phone Number</h1>
            </div>
            <div>
            <input type="text" name="phoneNumber" class="textbox" placeholder="Phone Number">&nbsp&nbsp
            </div>
            </td>
        </tr>
        <tr style="height: 8em"><td>
        <input type="submit" value="Register" class="css_button">
        </td>
        </tr>


    </table>
    </form>
    </div>

PHP:

<?php

    #error_reporting(0);    

    $firstName = $_POST['firstName'];
    $lastName = $_POST['lastName'];
    $email = $_POST['email'];
    $altEmail = $_POST['altEmail'];
    $gender = $_POST['gender'];
    $birthday = $_POST['month'] . "/" . $_POST['day'] . "/" . $_POST['year'];
    $phoneNumber = $_POST['phoneNumber'];
    $password = $_POST['password'];


    $sql = "INSERT INTO 'admin' ('email', 'alternateEmail', 'firstName', 'lastName', 'password', 'DateOfBirth', 'Gender', 'phoneNumber') VALUES ('$email', '$altEmail','$firstName', '$lastName', '$password', '$birthday', '$gender', '$phoneNumber')";
    $result = mysql_query($sql);
?>

Он перенаправляет на другой php файл, содержащий тот же PHP-код, но он не отправляет какие-либо данные в phpmyadmin.

  • 0
    форма не отправляется ????? что такое ошибка? где форма действий?
  • 0
    В вашем теге формы нет действий - находится ли PHP в том же файле, что и форма HTML? Кроме того, вы так широко открыты для внедрения SQL.
Показать ещё 7 комментариев
Теги:

3 ответа

0
Лучший ответ

Если ваша форма подчиняется самому себе, тогда атрибут действия не требуется. Однако в элементах select формы отсутствуют несколько значений. Например,

        <select name="month" class="dropDown">
        <option selected>Select Month</option>
        <option value="January"> January </option> <!--each option needs a value-->

Все параметры выбора должны иметь значение, или их результат в массиве POST будет пустым. Я бы порекомендовал добавить имя к вашей кнопке отправки:

<input type="submit" value="Register" name="Register" class="css_button" />

Это позволяет вам проверить, еще ли представлена форма:

<?php

#error_reporting(0);    

if(isset($_POST['Register'])){

    $_POST = mysql_real_escape_string($_POST); //protect yourself from SQL injection...

    $country = $_POST['country'];
    $firstName = $_POST['firstName'];
    $lastName = $_POST['lastName'];
    //etc...

Наконец, я считаю, что INSERT терпит неудачу, потому что вы назовёте столбец country без соответствующей переменной $country нужно вставить. Это дает вам 9 названных названий и всего 8 значений для вставки:

 $sql = "INSERT INTO 'admin' ('email', 'alternateEmail', 'firstName', 'lastName', 'password', 'DateOfBirth', 'country', 'Gender', 'phoneNumber') VALUES ('$email', '$altEmail','$firstName', '$lastName', '$password', '$birthday', '$country', '$gender', '$phoneNumber')";
$result = mysql_query($sql);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

Я также не вижу вызов mysql_connect любом месте, поэтому я надеюсь, что у вас есть соединение с базой данных где-нибудь?

  • 0
    Да, это связано с помощью метода include connect.php. Кроме того, я не добавил страну в код, потому что она была довольно длинной, и я не хотел заполнять окно с вопросом. Большое спасибо за ваш вклад! Я буду продолжать расследовать, что с ним не так.
  • 0
    Так страна присутствует в реальной форме?
Показать ещё 5 комментариев
0

Если вы хотите отправить значения на другую страницу. Вы должны определить действие формы

<form method="post" name="registry" action="Filepath">

Вот для деталей Форма, Действие

Если вы не определяете действие формы или Оставьте действие пустым. Форма отправляется на ту же страницу.

Example

0

вы забыли тег действия, чтобы указать целевой скрипт php для получения данных

<form method="post" name="registry" action="yourpage.php">

Ещё вопросы

Сообщество Overcoder
Наверх
Меню