我创建了一个动态HTML-Select,其选项由服务器上数据库的名称填充。单击选项后,将打开一个新的.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不会显示任何内容。我要去哪里错了?

最佳答案

只需更改网址以将选择内容包含为GET参数

$('#Databases').change(function () {
    var yourDB = $(this).val();
    window.location.assign("test.php?db=" + yourDB);
});


您可以在您的test.php页面中将其作为$ _GET变量来访问

10-05 20:36
查看更多