我已经创建了一个动态HTML选择,其选项由我的服务器上的数据库名称填充。在点击一个选项后,打开一个新的.php页面(使用JQuery)。在这个新页面中,我希望从前一页中选择的数据库名称作为一个字符串传递,我可以使用它来执行MySQL查询。从动态创建的选择表单中检索选项
那么我试过了什么?
function selectDB() {
$link = mysqli_connect ('username', 'root', '');
$qry = ("SHOW DATABASES");
$db_list = mysqli_query ($link, $qry);
echo "<select name ='Databases' id='Databases' method='post'>";
while ($row = mysqli_fetch_array ($db_list)) {
echo "<option value='" . $row [0] . "'>" . $row [0] . "</option>";
}
echo "</select>";
}
的JavaScript
$('#Databases').change(function() {
var yourDB = $(this).val();
window.location.assign("test.php");
});
test.php的
if (isset ($_POST ['Databases'])) {
$dbName = $_POST ['Databases'];
$link = mysqli_connect ('username', 'root', '', "'%$dbName%'");
if (! $link) {
die ("Connection failed" . mysqli_errno ($link));
}
$qry = "SHOW tables";
$tblist = mysqli_query ($link, $qry);
return $tblist;
printf ($tblist);
}
当我运行它,我得到的whitepageofdeath。运行error_log
不显示任何内容。我在哪里错了?
你不是通过POST发送任何,所以'$ _POST'将是空的。将数据库名称固定到URL的末尾,就像查询字符串'test.php?Databases = name_of_databases',然后在PHP端使用'$ _GET'数组。 – 2015-03-13 11:50:04
另一件事,删除数据库名称变量周围的'%'字符。你为什么拥有所有这些引号? – 2015-03-13 11:54:34