在页面加载时加载php表单搜索结果

在页面加载时加载php表单搜索结果,php,forms,Php,Forms,我有一个简单的php表单,允许用户从主题区域的下拉列表中选择返回一组数据库。如您所见,在进行选择并单击提交之前,不会返回任何内容。当页面加载生物数据库时,是否可能已经加载了一组数据库?生物数据库将加载到生物系页面上,等等。然后,是否允许用户进行另一个选择,就像我现在所做的那样?我的经验不足,请提前道歉 <form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post"> <

我有一个简单的php表单,允许用户从主题区域的下拉列表中选择返回一组数据库。如您所见,在进行选择并单击提交之前,不会返回任何内容。当页面加载生物数据库时,是否可能已经加载了一组数据库?生物数据库将加载到生物系页面上,等等。然后,是否允许用户进行另一个选择,就像我现在所做的那样?我的经验不足,请提前道歉

<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
   <select name="choice" id="choice">
      <option value="Biology">Biology</option>
      <option value="Chemistry">Chemistry</option>
      <option value="Computer Science">Computer Science</option>
      <option value="Mathematics">Mathematics</option>
      <option value="Medicine">Medicine</option>
      <option value="Physics">Physics</option>
</select>

   <input type="submit" name="submit" value="Go" style="margin-left: 10px">
   <input type="submit" name="reset" value="Clear" style="margin-left: 10px">
   <input type="hidden" name="submitted" value="true"/>
</form>

<?php
if(isset($_POST['submit']))   {

   $choice=$_POST['choice'];

   $localhost="localhost";
   $username="xxxxxxx";
   $password="xxxxxxx";
   $database="xxxxxxx";

   $linkid=mysql_connect($localhost,$username,$password);  
   @mysql_select_db($database) or die( "Unable to select database");

   mysql_select_db("databases",$linkid);
   $resultid=mysql_query("SELECT  name, mobile, app, tutorial, help
                          FROM databaselist
                          WHERE dept
                          LIKE '%{$choice}%'
                          ORDER BY sortname ASC", $linkid);

   echo"<table>";
   while ($row = mysql_fetch_row($resultid))
      {
         echo"<tr>";
         foreach ($row as $field)
            {
               echo"<td>$field</td>";
            }
         echo"</tr>";
      }
   echo"</table>";
   mysql_close($linkid);
}
?>

现在,如果您不打算使用javascript,您可以做一件事:

1-删除$\u POST['submit']的验证,您只能检查$choice=$\u POST['choice']变量。
2-将choice变量从$\u POST array更改为$\u GET array,这样您可以构建类似这样的链接。->mypage.com/index.php?choice=Biology。例如,有了这个功能,您就可以填写生物页面上的列表,还可以让用户选择任何其他选项。

如果您愿意,您可以预加载不同主题的所有数据,并将其保存到Javascript变量中,以便访问它们只需等待选择更改事件触发器即可


或者可以使用Ajax加载相关的主题变量。与此相同的是,服务器端代码提供数据,而不是存储在Javascript变量中的数据。

从您的问题来看,您似乎只希望在访问者首次登陆时,有一个预加载的资源列表来填充页面,也许只是为了填充空间?。作为一个基本的PHP解决方案,只需在页面顶部运行一个初始查询,该查询仅限于(比如)前100*条按字母顺序排列的记录,并在表单下方的表中进行回显

不要忘记将初始查询包装在if语句中,例如:

if(!ISSET($_POST)) {
    //run query
}

*如果要对结果进行分页,显然不需要100个——不管第一个屏幕上有多少个。我已经尝试了好几天了——我可以在用户做出选择时创建链接,这没有问题,但我就是不知道如何在页面加载时显示一组数据库而不是所有数据库。在表单中使用所选属性将使用户只需单击“转到”即可轻松获取该部门的数据库,但在单击“转到”之前,整个列表都会显示在页面上。很抱歉是否删除了“提交”验证?ifisset$\u POST['submit']是唯一一个停止对请求执行查询的点。如果您删除它,并且有一个像mypage.com/index.php?choice=Biology这样的链接,则只会显示生物学集。