Soy estudiante y no sé nada sobre PHP. pero tengo que hacer una de mis tareas usando PHP.

Aquí está el problema que enfrenté. En mi página de índice, hay 3 enlaces que dirigen a 3 formas diferentes. cuando el usuario elige un formulario, luego lo llena y lo envía. El archivo result.php muestra el resultado utilizando los valores que el usuario ingresa en el formulario. las 3 formas deben germinar su resultado usando el mismo archivo result.php.

No puedo entender cómo generar la página de resultados al identificar qué formulario selecciona el usuario. Aquí está mi código

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>

Probé el archivo result.php, pero no funcionó. aquí está el 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>
0
Just_Run 6 ene. 2020 a las 05:50

2 respuestas

La mejor respuesta

Considere usar isset() para verificar una variable específica. Puede ser mejor que verificar con 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>

Si tiene más formularios, considere usar switch() en lugar de if().

2
Twisty 6 ene. 2020 a las 03:04

Puede establecer diferentes valores para el envío de botones para cada formulario. O puede usar una etiqueta de entrada oculta para establecer el tipo de formulario. Ejemplo:

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

Y en forma de php

if($_POST["type"]=="form1")
{
//code here
}else if($_POST["type"]=="form2"){
//code here
}
0
Au Nguyen 6 ene. 2020 a las 02:58