使用Dropdown动态显示内容(与数据库连接)

Display content dynamically with Dropdown (with connection to DB)

本文关键字:数据库连接 Dropdown 动态显示 使用      更新时间:2023-09-26

我对这方面很陌生,我只是尝试用Javascript、PDO和PHP进行AJAX请求,以创建一个动态反应的下拉函数,从而显示新内容。。由于我在这里的知识非常有限,我通过结合从各种页面和视频中获得的代码片段创建了它。错误为:

Parse error: syntax error, unexpected 'endforeach' (T_ENDFOREACH) in /var/www/xxx/html/listing.php on line 22

这是我的listing.php页面,其中应该显示下拉列表和新内容:

<!DOCTYPE html>
<html>
<head>
<title>listing</title>
<meta charset="UTF-8">
<meta name="description" content="">
<meta name="author" content="">
<meta name="keywords" content="">
<link href=".css" type="text/css" rel="stylesheet">
<link href="favicon.ico" type="image/x-icon" rel="shortcut icon">
</head>
<body>
<select name="user" id="user-select">
<option value="">Choose a user</option>
<?php foreach ($subjects->fetchAll() as $user); ?>
  <option value="<?php echo $user['subject_id']; ?>"><?php echo $user['subject']; ?></option>
<?php endforeach; ?>
</select>
<div id="user-profile"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="js/global.js"></script>

这是global.js文件:

$('#user-select').on('change', function() {
var self = $(this);
$.ajax({
    url: 'https://www.xxx.de/partials/user.php',
    type: 'GET',
    data: { user: self.val() },
    success: function(data){
      $('#user-profile').html(data);
    }
});
});

以及partials/user.php,它包含到数据库的连接:

<?php
$dsn = "xxx";
$user = "xxx";
$pw = "xxx";
try {
$pdo = new PDO($dsn, $user, $pw);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
if (isset($_GET['user'])) {
$userQuery = "
SELECT
    subjects.subject_id,
    subjects.subject,
FROM subjects
WHERE subjects.subject_id = :subject_id
";
$user = $pdo->prepare($userQuery);
$user->execute(['subject_id' => $_GET['user']]);
$selectedUser = $user->fetch(PDO::FETCH_ASSOC);
print_r($selectedUser);
}
?>

任何帮助都是感激的,我感谢任何提示!

愚蠢的错误。。我只是忘记了在listing.php页面上包含连接来填充foreach循环。->

在listing.php之前!DOCTYPE html开始:

<?php
$dsn = "xxx";
$user = "xxx";
$pw = "xxx";
try {
$pdo = new PDO($dsn, $user, $pw);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
$usersQuery = "SELECT fach_id, fach FROM faecher";
$users = $pdo->query($usersQuery);
?>

尝试替换;with:在php foreach语句中

<?php foreach ($subjects->fetchAll() as $user): ?>