javascript - 使用 jQuery 和 PHP 使用从 MySQL 数据库查询的 JSON 数据填充 HTML 选择字段
问题描述
我正在尝试使用 jQuery 将数据库值填充到 HTML 下拉选择字段中。我发现了一个很好的例子,我认为如果这是要走的路。我对 jQuery 和 JavaScript 很陌生。
基本上,我正在尝试和这里的人一样:https ://www.electrictoolbox.com/json-data-jquery-php-mysql/但它是不同的。
为了在这个例子中保留它,我只需要“Variety”下拉菜单,没有“Fruit”下拉菜单。我想SELECT savename FROM pdfform;
在页面加载并在“Lade Datensatz”HTML 下拉菜单中显示结果。
但发生的一切是我得到一个空的下拉菜单,就像 jQuery 根本没有执行一样。如果我直接调用 data.php,我会得到 JSON 数据:
index.html包括 JavaScript jQuery:
<!doctype html>
<html lang="de">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body class="bg-light" data-spy="scroll" data-target=".navbar" data-offset="50">
<div class="container">
<div class="row">
<div class="col-md-12 mb-3">
<form id="LoadForm" name="LoadForm">
<h5 class="text-center">Lade Datensatz</h5>
<label for="load"></label>
<select class="custom-select d-block w-100" id="load" name="load">
</select>
</form>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script>
// 1st Try
// function populatedata() {
// console.log("populatedata Executed!");
// $.getJSON('/data.php',
// function(data) {
// var select = $('#load');
// var options = select.prop('options');
// $('option', select).remove();
// $.each(data, function(index, array) {
// options[options.length] = new Option(array['savename']);
// });
// });
// }
// 2nd Try
// function populatedata() {
// console.log("populatedata Executed!");
// $.getJSON('/data.php',
// function(data) {
// console.log(data);
// });
// }
// 3rd Try
function populatedata() {
console.log("populatedata Executed!");
$.getJSON('/data.php');
}
// Good for all Trys
$(document).ready(function() {
populatedata();
$('#load').change(function() {
populatedata();
});
$('#load').click(function() {
populatedata();
});
});
</script>
</body>
</html>
我的数据.php:
<?php
header('Content-Type: text/html; charset=utf-8');
$dsn = "mysql:host=192.168.17.61;dbname=mvt_test";
$username = "mvt_test";
$password = "wqiM7n4POSW1jpJLPM3u2";
$pdo = new PDO($dsn, $username, $password);
$rows = array();
$stmt = $pdo->prepare("SELECT savename FROM pdfform");
// $stmt = $pdo->prepare("SELECT savename FROM pdfform WHERE name = ? ORDER BY savename");
// $stmt->execute(array($_GET['savename']));
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($rows);
?>
控制台日志: 图片
解决方案
jquery
在您编辑帖子并添加控制台日志之前,我没有注意您调用的内容,您调用的是excludes的Slim
版本。检查:
JQuery 问题“TypeError:$.getJSON 不是函数”jquery
ajax
你应该仔细看看你的控制台,错误很明显:$.getJSON is not a function
,你必须调用完整版的jquery!
推荐阅读
- authentication - 如何使用 OTP 请求使用 AADHAR 身份验证 API
- r - 尝试在 R 中解析 bencode / torrent 文件
- java - 我正在使用 volley 将数据发布到设备。我通过 wifi 连接到它。但在应用程序中:NoConnectionError!无法连接到 192.168.4.1
- python - 将文本文件中的行附加到 python 中的列表,不带'\n'
- python - 如何使用python阻止用户在电报组中发送消息
- html - 如何在 ASp.net MVC 视图中将 @ 用于其他目的而不使用后端编码
- c# - 自动复位事件和 ++i
- linux - 未初始化内存的定义产生“尝试初始化内存”错误
- javascript - 有没有办法或示例在 LiveSwitch Javascript 中动态打开或关闭 MCU 连接?
- nginx - Nginx - 如何使用端口地址设置静态路由 IP 地址?