Php 将jQuery中的SQL AJAX调用结果显示到HTML时出现问题
我目前正试图将从数据库返回的数据显示在php显示页面上。我一直遵循本教程: 起初,我试着用我的数据进行测试。但我发现它工作不正常。因此,我决定使用我的系统教程中提供的示例数据来查看哪里出了问题。因此,我的页面如下:Php 将jQuery中的SQL AJAX调用结果显示到HTML时出现问题,php,jquery,mysql,ajax,mysqli,Php,Jquery,Mysql,Ajax,Mysqli,我目前正试图将从数据库返回的数据显示在php显示页面上。我一直遵循本教程: 起初,我试着用我的数据进行测试。但我发现它工作不正常。因此,我决定使用我的系统教程中提供的示例数据来查看哪里出了问题。因此,我的页面如下: populatePage.php很抱歉浪费时间。我没有在popJax.php中尝试引用的任何div 我需要添加警告:您完全可以使用参数化的预处理语句,而不是手动构建查询。它们由或提供。永远不要相信任何类型的输入,尤其是来自客户端的输入。即使您的查询仅由受信任的用户执行,。我强烈建议
populatePage.php很抱歉浪费时间。我没有在popJax.php中尝试引用的任何div
我需要添加警告:您完全可以使用参数化的预处理语句,而不是手动构建查询。它们由或提供。永远不要相信任何类型的输入,尤其是来自客户端的输入。即使您的查询仅由受信任的用户执行,。我强烈建议您停止遵循本教程!这是在教你非常错误的PHP编码实践。@Dharman哦,不!我只是想找到一种方法,将我的SQL数据显示在下拉列表中。真的有那么糟糕吗?老实说,我只是想使用AJAX将表数据从SQL显示到列表中。有更好的方法吗?@Morjee,你需要听听达曼的建议。该代码易受sql注入攻击。您将参数/请求直接传递到sql查询中,而无需事先转义、验证和清理
<?php
require_once('../../config/sessionHandler.php');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<script type="text/javascript" src="src/populatePage.js"></script>
<title>Populate Page</title>
</head>
<body >
<div class="page-header">
<h3>
<select id="employee">
<option value="" selected="selected">Select Employee Name</option>
<?php
$sql = "SELECT id, employee_name, employee_salary, employee_age FROM employee LIMIT 10";
$resultset = mysqli_query($conn, $sql) or die("database error:". mysqli_error($conn));
while( $rows = mysqli_fetch_assoc($resultset) ) {
?>
<option value="<?php echo $rows["id"]; ?>"><?php echo $rows["employee_name"]; ?></option>
<?php } ?>
</select>
</h3>
</div>
<div id="display">
<div id="heading" class="row">
<h3>
</h3>
</div>
<div id="records" class="row">
<h3>
</h3>
</div>
</div>
</body>
</html>
$(document).ready(function(){
// code to get all records from table via select box
$("#employee").change(function() {
var id = $(this).find(":selected").val();
var dataString = 'empid='+ id;
$.ajax({
url: 'popJax.php',
dataType: "json",
data: dataString,
cache: false,
success: function(employeeData) {
if(employeeData) {
$("#heading").show();
$("#no_records").hide();
$("#emp_name").text(employeeData.employee_name);
$("#emp_age").text(employeeData.employee_age);
$("#emp_salary").text(employeeData.employee_salary);
$("#records").show();
} else {
$("#heading").hide();
$("#records").hide();
$("#no_records").show();
}
}
});
})
});
<?php
require_once('../../config/sessionHandler.php');
$_SESSION['PopulateWorking'] = true;
if($_REQUEST['empid'])
{
$sql = "SELECT id, employee_name, employee_salary, employee_age FROM employee WHERE id='".$_REQUEST['empid']."'";
$resultset = mysqli_query($conn, $sql) or die("database error:". mysqli_error($conn));
$data = array();
while( $rows = mysqli_fetch_assoc($resultset) )
{
$data = $rows;
}
echo json_encode($data);
}
else
{
echo 0;
$_SESSION['Fail'] = true;
}
?>>