Usar if (isset ($ _ POST )) para no mostrar el eco cuando el script está abierto no está funcionando

Tengo un pequeño problema con mi if(isset($_POST['submit'])) . Lo que quiero es que algunos echos y una tabla no aparezcan cuando el script esté abierto, pero sí quiero que se muestre cuando se haga clic en el botón de enviar del formulario. Sin embargo, el problema es que cuando if(isset($_POST['submit'])) la función if(isset($_POST['submit'])) , cuando hago clic en el botón de enviar no se muestran los echos ni la tabla. ¿Por qué es esto y puede ayudarme con este problema, por favor?

A continuación está el código:

     Exam Interface    

NOTE: If a search box is left blank, then the form will search for all data under that specific field

Session ID:

Module Number:

Teacher Username:

Student Username:

Grade:

Order Results By: Session ID Module Number Teacher Username Student Username Grade

<?php $username="xxx"; $password="xxx"; $database="mobile_app"; mysql_connect('localhost',$username,$password); @mysql_select_db($database) or die("Unable to select database"); $sessionid = isset ($_POST['sessionid']) ? $_POST['sessionid'] : ""; $moduleid = isset ($_POST['moduleid']) ? $_POST['moduleid'] : ""; $teacherid = isset ($_POST['teacherid']) ? $_POST['teacherid'] : ""; $studentid = isset ($_POST['studentid']) ? $_POST['studentid'] : ""; $grade = isset ($_POST['grade']) ? $_POST['grade'] : ""; $orderfield = isset ($_POST['order']) ? $_POST['order'] : ""; $sessionid = mysql_real_escape_string($sessionid); $moduleid = mysql_real_escape_string($moduleid); $teacherid = mysql_real_escape_string($teacherid); $studentid = mysql_real_escape_string($studentid); $grade = mysql_real_escape_string($grade); switch ($orderfield) { case 'ordersessionid': $orderfield = 'gr.SessionId'; break; case 'ordermoduleid': $orderfield = 'm.ModuleId'; break; case 'orderteacherid': $orderfield = 's.TeacherId'; break; case 'orderstudentid': $orderfield = 'gr.StudentId'; break; case 'ordergrade': $orderfield = 'gr.Grade'; break; } $ordertable = $orderfield; $result = mysql_query("SELECT * FROM Module m INNER JOIN Session s ON m.ModuleId = s.ModuleId JOIN Grade_Report gr ON s.SessionId = gr.SessionId JOIN Student st ON gr.StudentId = st.StudentId WHERE ('$sessionid' = '' OR gr.SessionId = '$sessionid') AND ('$moduleid' = '' OR m.ModuleId = '$moduleid') AND ('$teacherid' = '' OR s.TeacherId = '$teacherid') AND ('$studentid' = '' OR gr.StudentId = '$studentid') AND ('$grade' = '' OR gr.Grade = '$grade') ORDER BY $ordertable ASC"); $num=mysql_numrows($result); if(isset($_POST['submit'])){ echo "

Your Search: Session ID: "; if (empty($sessionid))echo "'All Sessions'"; else echo "'$sessionid'";echo ", Module ID: "; if (empty($moduleid))echo "'All Modules'"; else echo "'$moduleid'";echo ", Teacher Username: "; if (empty($teacherid))echo "'All Teachers'"; else echo "'$teacherid'";echo ", Student Username: "; if (empty($studentid))echo "'All Students'"; else echo "'$studentid'";echo ", Grade: "; if (empty($grade))echo "'All Grades'"; else echo "'$grade'"; "

"; echo "

Number of Records Shown in Result of the Search: $num

"; echo ""; while ($row = mysql_fetch_array($result)){ echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
Student Id Forename Session Id Grade Mark Module Teacher
" . $row['StudentId'] . "" . $row['Forename'] . "" . $row['SessionId'] . "" . $row['Grade'] . "" . $row['Mark'] . "" . $row['ModuleName'] . "" . $row['TeacherId'] . "
"; } mysql_close(); ?>

Cualquier ayuda será muy apreciada, gracias.

Debe dar un nombre a su envío o no estará disponible usando $_POST['submit'] :

 

Lo que estás comprobando

 if(isset($_POST['submit'])) 

pero no hay un nombre de variable llamado “enviar”. bueno, quiero que entiendas por qué no funciona. imaginemos si le das a tu botón enviar el nombre delete y verifica if(isset($_POST['delete'])) luego funciona en este código usted no dio ningún nombre para enviar el botón y verificar que exista o no con isset(); función para que php no encuentre ninguna variable como “enviar” por lo que no está funcionando ahora intente esto:

  

Nunca has nombrado tu botón de envío, por lo que respecta al formulario, es solo una acción.

Ya sea:

  1. Nombre el botón de enviar ( )
  2. Pruebe if (!empty($_POST)) para detectar cuándo se han publicado los datos.

Recuerde que las claves en el superglobal $_POST solo aparecen para los elementos de entrada con nombre . Entonces, a menos que el elemento tenga el atributo de nombre, no pasará a $_POST (o $_GET / $_REQUEST )

Debes dar un nombre a tu botón de envío

  

Luego puede llamar al botón con $_POST['login']

La función $_post necesita el valor del nombre como:

  

Llamada

 $var = strip_tags($_POST['example']); if (isset($var)){ // your code here } 

¿Qué está mal en esto?

  

login.php

 if(isset($_POST['submit']) && !empty($_POST['submit'])) { // if (!logged_in()) echo 'asodj'; }