【问题标题】:Execute Sql Query in php using onchange event in html Form [duplicate]使用html表单中的onchange事件在php中执行Sql Query [重复]
【发布时间】:2019-07-08 16:48:43
【问题描述】:

我有一个 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>

【问题讨论】:

  • Onchange of department 你要重新选择部门吗?
  • 警告:mysql_*** 函数是deprecated,几年未维护,可能存在未修补的安全问题。他们也没有适当的方法来保护您免受SQL injection 攻击。这些函数在 PHP7 及更高版本中被完全删除。您不应该使用这些函数编写任何新代码。您应该立即改用mysqli_PDO 函数。
  • 附注要回答您的问题,您需要提交表单或发出 AJAX 请求,以便将输入数据返回到服务器。你选择哪一个取决于你希望你的应用程序如何工作:一个表单会刷新你的整个页面,而 AJAX 可以让你在不刷新的情况下从服务器发送和接收数据。

标签: javascript php html sql


【解决方案1】:

很遗憾,这并不像您想的那么简单。虽然确实可以使用 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。

【讨论】:

    猜你喜欢
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    相关资源
    最近更新 更多