当前位置: 首页 > 面试题库 >

使用if(isset($ _ POST ['submit']))不能在打开脚本时显示回显

孟乐
2023-03-14
问题内容

我的if(isset($_POST['submit']))代码有一点问题。我想要的是一些回声,并且在打开脚本时不显示表格,但是我希望在单击表单的提交按钮时显示该表格。问题是,当包含if(isset($_POST['submit']))函数时,当我单击“提交”按钮时,它根本不显示回显和表格。为什么会这样,请您帮我解决这个问题。

下面是代码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<title>Exam Interface</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>

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

<form action="exam_interface.php" method="post" name="sessionform">        <!-- This will post the form to its own page"-->
<p>Session ID: <input type="text" name="sessionid" /></p>      <!-- Enter Session Id here-->
<p>Module Number: <input type="text" name="moduleid" /></p>      <!-- Enter Module Id here-->
<p>Teacher Username: <input type="text" name="teacherid" /></p>      <!-- Enter Teacher here-->
<p>Student Username: <input type="text" name="studentid" /></p>      <!-- Enter User Id here-->
<p>Grade: <input type="text" name="grade" /></p>      <!-- Enter Grade here-->
<p>Order Results By: <select name="order">
<option value="ordersessionid">Session ID</option>
<option value="ordermoduleid">Module Number</option>
<option value="orderteacherid">Teacher Username</option>
<option value="orderstudentid">Student Username</option>
<option value="ordergrade">Grade</option>
</select>
<p><input type="submit" value="Submit" /></p>
</form>

<?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 "<p>Your Search: <strong>Session ID:</strong> "; if (empty($sessionid))echo "'All Sessions'"; else echo "'$sessionid'";echo ", <strong>Module ID:</strong> "; if (empty($moduleid))echo "'All Modules'"; else echo "'$moduleid'";echo ", <strong>Teacher Username:</strong> "; if (empty($teacherid))echo "'All Teachers'"; else echo "'$teacherid'";echo ", <strong>Student Username:</strong> "; if (empty($studentid))echo "'All Students'"; else echo "'$studentid'";echo ", <strong>Grade:</strong> "; if (empty($grade))echo "'All Grades'"; else echo "'$grade'"; "</p>";

echo "<p>Number of Records Shown in Result of the Search: <strong>$num</strong></p>";

echo "<table border='1'>
<tr>
<th>Student Id</th>
<th>Forename</th>
<th>Session Id</th>
<th>Grade</th>
<th>Mark</th>
<th>Module</th>
<th>Teacher</th>
</tr>";

while ($row = mysql_fetch_array($result)){

 echo "<tr>";
  echo "<td>" . $row['StudentId'] . "</td>";
  echo "<td>" . $row['Forename'] . "</td>";
  echo "<td>" . $row['SessionId'] . "</td>";
  echo "<td>" . $row['Grade'] . "</td>";
  echo "<td>" . $row['Mark'] . "</td>";
  echo "<td>" . $row['ModuleName'] . "</td>";
  echo "<td>" . $row['TeacherId'] . "</td>";
  echo "</tr>";
}

echo "</table>";

}

mysql_close();


 ?>

</body>
</html>

任何帮助将不胜感激,谢谢。


问题答案:

您需要给提交<input>的名称起个名字,否则将无法使用$_POST['submit']

<p><input type="submit" value="Submit" name="submit" /></p>


 类似资料:
  • 问题内容: 我在一页上有一个表单提交到另一页。在那里,它检查输入邮件是否已填充。如果是这样,则执行某些操作,如果未填满,请执行其他操作。我不明白为什么即使我发送一个空表格,它总是说它已设置。遗漏或错了什么? step2.php: step2_check: 问题答案: 即使没有填写,大多数表单输入总是被设置的,因此您也必须检查是否为空。 由于已经检查了两者,因此您可以使用以下命令:

  • 所以我使用joblib来并行化一些代码,我注意到在jupyter笔记本中使用它时无法打印东西。 我尝试在ipython中使用相同的示例,效果非常好。 下面是一个在jupyter笔记本电脑中写入的最小(非)工作示例 所以我得到的输出为但没有打印任何内容。 我期望看到的(打印顺序在现实中可能是随机的): 您可以在笔记本进程的日志中看到打印。但我希望打印发生在笔记本上,而不是笔记本过程的日志。 我已经打

  • 问题内容: 现在,为了查看结果,我必须等到整个代码执行完毕。它会挂起,直到完成并保持加载状态。完成后,它会显示我正在寻找的所有信息。在脚本仍在运行时,是否仍要显示此信息?所以说,如果我在代码的顶部有打印,我希望它显示在调用脚本时而不是在脚本执行完成时显示。 有人知道怎么做吗? 谢谢 问题答案: 您可以像这样使用输出缓冲:

  • 我有一个问题,让Chart.js显示图表时使用的Chart.min.js文件,这是使用的结果安装:npm安装chart.js保存(但是,如果使用CDN提供的文件-图表将显示) 为了避免在代码中插入路径,我将Chart.min.js文件从安装目录:./node_modules/chart_js/dist/Chart.min.js复制到我的网页所在的目录。这是要复制的文件吗?无论如何,当我重新加载应用

  • 我使用以下html表单代码允许用户选择多个文件进行上传。 uploadFiles.php包含以下代码。 出于某种原因,isset($_POST['提交'])总是返回false。我得到以下输出

  • 问题内容: 我想设置一个cron作业来运行python脚本,但是它给了我这个错误: 这是因为我导入了一个需要打开显示的模块(例如)。即使我的脚本不会生成任何图片来显示在监视器上。 有什么方法可以让crontab在显示打开的情况下运行我的作业(就像我进入机器一样)?我实际上不需要为监视器生成任何图形。我只需要正确导入模块即可。 问题答案: 您将需要有效的DISPLAY和XAUTHORITY才能在Cr