Как обрабатывать несколько php форм, используя одну php страницу - PullRequest
0 голосов
/ 06 января 2020

Я студент и ничего не знаю о PHP. но я должен выполнить одно из моих заданий, используя PHP.

Вот проблема, с которой я столкнулся. На моей странице указателя есть 3 ссылки, которые указывают на 3 различные формы. когда пользователь выбирает одну форму, затем заполняет и отправляет ее результат. Файл php показывает выходные данные, используя значения, которые пользователь вводит в форму. все 3 формы должны прорасти в свой результат, используя один и тот же результат. php файл.

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

form1.php

<!DOCTYPE html>
<html>
<head>
    <title>PHP form handling</title>
</head>
<body>
    <form name="form1" action="result.php" method="post">
        <label for="pullDownMenu">Title</label> 
        <select name="pullDownMenu" id="pullDownMenu" size="1"> 
            <option value="Mr">Mr</option> 
            <option value="Ms">Ms</option> 
            <option value="Mrs">Mrs</option> 
            <option value="Rev">Rev</option>
        </select>

        <p>Name: <input type="text" name="firstname" value="" /></p>
        <p>Reg No: <input type="text" name="lastname" value="" /></p>
        <p>Email Addr: <input type="text" name="Email" value="" /></p>

        <input type="submit" name="submit" value="Submit" />
    </form>
</body>
</html>

form2.php

<!DOCTYPE html>
<html>
<head>
    <title>form 2</title>
</head>
<body>
    <form name="form2" action="result.php" method="post">
        <p>Registrationa no: <input type="text" name="RegNO" value="" /></p>
        <p>NIC number <input type="text" name="NIC" value=""></p>
        <p>Telephone number: <input type="text" name="Telephone" value="" /></p>
        <input type="submit" name="submit" value="Submit" />
    </form>
</body>
</html>

Я попробовал результат. php файл, но это не так Работа. вот это result.php

<!DOCTYPE html>
<html>
<head>
    <title>PHP demo</title>
</head>
<body>
    <?php
        if(!empty($_POST['form1'])){
            $title=$_POST['pullDownMenu'];
            $firstname = $_POST['firstname'];
            $lastname = $_POST['lastname'];
            $Email = $_POST['Email'];

            echo"<h1>student information</h1>";
            echo'title is : ' . $title . '</br>';
            echo 'first name is : '. $firstname . '</br>';
            echo 'lastname is : '.$lastname;
        }

        if (!empty($_POST['form2'])) {
            $regNo = $_POST['RegNO'];
            $NIC = $_POST['NIC'];
            $tel = $_POST['Telephone'];

            echo "<p>Following details are saved to database</p>";
            echo 'reg No\t:\t' . $regNo. '</br>';
            echo 'NIC\t:\t' . $NIC. '</br>';
            echo 'Tel No\t:\t' . $tel. '</br>';
        }
    ?>
</body>
</html>

Ответы [ 2 ]

2 голосов
/ 06 января 2020

Попробуйте использовать isset() для проверки определенной c переменной. Это может быть лучше, чем проверка с помощью empty().

<!DOCTYPE html>
<html>
<head>
  <title>PHP demo</title>
</head>
<body>
<?php 
if(isset($_POST['form1'])){
  echo "<h1>student information</h1>\r\n";
  echo "title is : $_POST['pullDownMenu']<br />\r\n";
  echo "first name is : $_POST['firstname']<br />\r\n";
  echo "lastname is : $_POST['lastname']\r\n";
}
if (isset($_POST['form2'])) {
  echo "<p>Following details are saved to database</p>\r\n";
  echo "reg No\t:\t$_POST['RegNO']<br />\r\n";
  echo "NIC\t:\t$_POST['NIC']<br />\r\n";
  echo "Tel No\t:\t$_POST['Telephone']<br />\r\n";
}
?>
</body>
</html>

Если у вас есть больше форм, рассмотрите возможность использования switch() вместо if().

0 голосов
/ 06 января 2020

Вы можете установить разные значения для кнопки отправки для каждой формы. Или вы можете использовать скрытый тег ввода, чтобы установить тип формы. Пример:

Form1 : <input type="hidden" name="type" value="form1">
Form2 : <input type="hidden" name="type" value="form2">

И в php форме

if($_POST["type"]=="form1")
{
//code here
}else if($_POST["type"]=="form2"){
//code here
}
...