【发布时间】:2015-03-13 19:52:03
【问题描述】:
我创建了一个动态 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数组。 -
另一件事,删除数据库名称变量周围的
%字符。为什么你有所有这些引号?
标签: javascript php jquery mysql