Php 将MySQL表的名称解析为Json,然后加载到下拉框中
我想从我的SQL数据库中获取表的名称,并将它们放在一个下拉框中,然后该下拉框将用于在index.html页面上显示所选表中的数据 目前,下拉框中填充的是纯JSON数据,而不是任何看起来正常的数据 以下是我的代码文件: db.phpPhp 将MySQL表的名称解析为Json,然后加载到下拉框中,php,jquery,mysql,json,Php,Jquery,Mysql,Json,我想从我的SQL数据库中获取表的名称,并将它们放在一个下拉框中,然后该下拉框将用于在index.html页面上显示所选表中的数据 目前,下拉框中填充的是纯JSON数据,而不是任何看起来正常的数据 以下是我的代码文件: db.php <?php $hostname = "localhost"; $username = "root"; $password = ""; $db = "db_12058661"; ?> mysql.php <?php require("db.p
<?php
$hostname = "localhost";
$username = "root";
$password = "";
$db = "db_12058661";
?>
mysql.php
<?php
require("db.php");
$id = $_GET['id'];
if ($id == 1){
$query=new PDO("mysql:dbname=$db;host=$hostname","$username","$password");
$statement=$query->prepare("SELECT * FROM $id");
$statement->execute();
$results=$statement->fetchAll(PDO::FETCH_ASSOC);
$json=json_encode($results);
}
?>
tables.php
<?php
require_once("db.php");
$query=new PDO("mysql:dbname=$db;host=$hostname","$username","$password");
$statement=$query->prepare("show tables");
$statement->execute();
$results=$statement->fetchAll(PDO::FETCH_ASSOC);
$json = json_encode($results);
echo ($json);
?>
index.php
<html>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet">
<script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<nav class="navbar navbar-inverse">
<div class="container">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
</button>
<a class="navbar-brand">Michael Delahorne 12058661</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
</ul>
</div>
</div>
</nav>
<body>
<div class="row">
<div class="container">
<div class="col-md-12">
<select name="options" id="options" class="form-control">
<option value="0">Select</option>
<option value="1">People</option>
<option value="2">Animals</option>
<option value="3">Shapes</option>
</select>
</div>
<div id="table">
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(){
$("option").load('tables.php');
})
</script>
<script type="text/javascript">
$(document).ready( function() {
$("#options").change(function() {
$("#table").load('mysql.php?id=' + $(this).val());
}); })
</script>
<script>
$(document).ready(function(){
$.getJSON("tables.php", function (data){
var jsonData
$.each(data, function(i, menuItems){
jsonData = '<select>' + jsonData + '</select>';
$(jsonData).appendTo('#options');
alert(1);
})
})
})
</script>
迈克尔·德拉霍恩12058661
挑选
人
动物
形状
$(文档).ready(函数(){
$(“option”).load('tables.php');
})
$(文档).ready(函数(){
$(“#选项”).change(函数(){
$(“#table”).load('mysql.php?id='+$(this.val());
}); })
$(文档).ready(函数(){
$.getJSON(“tables.php”,函数(数据){
var jsonData
$.each(数据、函数(i、菜单项){
jsonData=''+jsonData+'';
$(jsonData).appendTo('选项');
警报(1);
})
})
})
您很容易受到plus.each()循环的攻击,实际上它并不使用返回的json。您只需不断构建一个嵌套的…
,然后将其填充到html中的另一个
。真的吗?我需要改变什么来解决这个问题?我已经从HTML中删除了预配置的,但这并没有改变任何事情。jsondata=''+menuItems+'
可能?下拉框现在有3个条目,都是[object]。不过,总算有进展了!