使用html表单中的onchange事件在php中执行SQL查询

时间:2019-07-08 16:48:43

标签: javascript php html sql

我有一个html php文件。在此文件中,我有一个包含两个选择框的表格:员工部门和员工分支。如果我单击员工部门选择框,则应使用onchange事件执行sql查询并显示所选部门。 php代码和html代码在同一文件中。我尝试了这段代码

文件名:Search.php

<?php
include("config.php");
$dept= (isset($_POST['dept'])) ? $_POST['dept'] : '';
$branch= (isset($_POST['branch'])) ? $_POST['branch'] : '';
?>

<html>
<body>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"    name="quick_search" id="quick_search"   method = "POST" enctype="multipart/form-data">

<select size="1" name="dept" id="dept" onchange="this.form.submit();" <?php $sql = "SELECT * FROM users WHERE dept = '$dept'"; $qry = mysql_query($sql); ?>>
<option value="select">select</option>
<option value="purchase">purchase</option>
<option value="Sales">sales</option>
<option value="production">production</option>
<option value="accounts">accounts</option>
</select>

<select size="1" name="branch" id="branch" onchange="this.form.submit();" <?php $sql = "SELECT * FROM users WHERE branch = '$branch'"; $qry = mysql_query($sql); ?>>
<option value="select">select</option>
<option value="salem">salem</option>
<option value="chennai">chennai</option>
<option value="kovai">kovai</option>
<option value="namakkal">namakkal</option>
</select>

<?php
while($userdetails = mysql_fetch_array($qry))
{
$userfirstname = $userdetails['firstname'];
$userbranch = $userdetails['branch'];
$userdepartment = $userdetails['department'];
$usersalary = $userdetails['salary'];
}
?>

</form>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

不幸的是,这并不是您想要的那样简单。虽然确实可以使用php生成html,但它们并不是所有这些元素之间的内在联系。

当您的用户首次打开页面时,php将生成html,然后将其发送到他们的浏览器。现在,php和html之间的链接已断开。如果要通过从服务器获取更多信息来更新html,则需要对服务器进行新调用并替换需要更改的部分。所以您真的想使用javascript,尤其是ajax。

使用jQuery或其他javascript框架使Ajax非常简单,但是如果要使用纯JavaScript进行调用,请查看以下问题:

How to make an AJAX call without jQuery?

您可以调用php页面,该页面将获取数据并将其发送回(作为JSON或直接作为生成的HTML),然后使用javascript修改DOM。