使用AJAX将变量发布到不同文件上的php函数并调用该函数

时间:2015-03-27 09:44:54

标签: javascript php jquery mysql ajax

我试图通过AJAX发布变量并使用这些变量来运行创建checkbox选项列表的脚本。我的代码如下:

*index.php*



 require_once ("session_start.php");
    require_once ("ajax.php");
    error_reporting ( E_ALL );
    ini_set ( 'display_errors', 1 );
    $link = mysqli_connect ( 'localhost', 'root', '' );

    if (! $link) {
        die ( "Connection failed" . mysqli_errno ( $link ) );
    }
function getDBlist() {
            global $link;
            $qry = ("SHOW DATABASES");
            $res = mysqli_query ( $link, $qry );
            while ( $row = mysqli_fetch_assoc ( $res ) ) {
                echo '<input type="checkbox" name="db"  value="' . $row ['Database'] . '" class="checkbox" />';
                echo $row ['Database'];
            }
        }
        getDBlist ();

剧本

$(document).on("change", ".checkbox", function () {
    var db = $(this).val();
    $.ajax({
        type: "POST",
        url: "ajax.php",
        data: {"db=" + db},
        success: function (html) {
            $("#qryDisplay").show();
        }
    });
});

ajax.php

function showTables() {
    if (isset ( $_POST ['db'] )) {
        $db = $_POST ['db'];
        $link = mysqli_connect ( '192.168.2.113', 'root', '', $db );
        $qry = "SHOW tables";
        $tbl_list = mysqli_query ( $link, $qry );
        ?>
<ul>
         <?php
        while ( $row = mysqli_fetch_array ( $tbl_list ) ) {
            ?>
            <input type="checkbox" name="tbl[]" class="tbl_list"
        value="<?php echo   $row [0];   ?>" />
            <?php echo $row [0]; ?>
            <br>
            <?php
        }
    }
}
showTables ();
?>
</ul>
<?php
function tblProperties() {
    if (isset ( $_POST ['tbl'] )) {
        $tbl = $_POST ['tbl'];
        $db = $_POST ['db'];
        $link = mysqli_connect ( '192.168.2.113', 'root', '', $db );
        $qry = "DESCRIBE $tbl";
        $result = mysqli_query ( $link, $qry );
        ?>
<div class="Table">
    <div class="Heading">
        <div class="Cell2">
            <p> <?php echo $tbl; ?> </p>
        </div>
    </div>
    <div class="Row">
        <div id="topRow">
            <input type="checkbox" name="tbl" id="tblall" value="All" />
            <p>ALL</p>
        </div>
        <?php
        while ( $row = mysqli_fetch_array ( $result ) ) {
            ?>
            <div class="draggable-cell ui-widget-content">
            <input type="checkbox" name="tbl" class="tblst"
                value="<?php echo $row[0];?>" />
            <p><?php echo $row[0]; ?> </p>
        </div>
            <?php }?>
        </div>
</div>
<?php } } tblProperties(); 

(单击该复选框应将变量db发布到我的ajax.php页面) 在这一点上,我相信我做的一切都是正确的,但是当我在ajax.php文件中调用showtables()函数index.php时,我得不到任何结果。可能是变量没有被发布吗?如果是这样,为什么成功条件得以实现?我错过了至关重要的事吗?

2 个答案:

答案 0 :(得分:1)

替换如下:

data: {"db=" + db},

使用以下内容并尝试:

data: {db: db},

答案 1 :(得分:0)

您需要在ajax.php中回显结果集。你没有回应任何东西或没有回报任何东西。