Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检索AJAX发布的每个变量_Javascript_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Javascript 检索AJAX发布的每个变量

Javascript 检索AJAX发布的每个变量,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我将复选框选择存储在一个数组中,然后拆分每个数组并使用AJAX发布它们,这样我的PHP函数就可以使用发布的id/id查询我的MySQL数据库 我的JavaScript的第一部分 $('#tbl_list').click(function (event) { var tbls = new Array(); $("input:checkbox[name='tbl[]']:checked").each(function () { tbls.push($(this).va

我将复选框选择存储在一个数组中,然后拆分每个数组并使用AJAX发布它们,这样我的PHP函数就可以使用发布的id/id查询我的MySQL数据库

我的JavaScript的第一部分

$('#tbl_list').click(function (event) {
    var tbls = new Array();
    $("input:checkbox[name='tbl[]']:checked").each(function () {
        tbls.push($(this).val());
    });
    var tbl = tbls.join('|');
    alert(tbl);
第一部分按预期工作,每次单击复选框时,该值都会发出警报

阿贾克斯邮报

 $.ajax({
        type: "POST",
        url: "index.php",
        data: "tbl=" + tbl
    });
});
最后是我的PHP

    function describeTables() {
                if (isset ( $_POST ['tbl'] )) {

                    $tbl = $_POST ['tbl'];
                    echo $tbl;

}}
即使我只选择了一个选项,我也得不到任何tbl的价值。这是为什么

编辑 我的复选框

function showTables() {
        if (isset ( $_GET ['db'] )) {
            $db = $_GET ['db'];
            $link = mysqli_connect ( 'localhost', 'root', '', $db );

            $qry = "SHOW tables";
            $tbl_list = mysqli_query ( $link, $qry );
            echo '<ul>';
            while ( $row = mysqli_fetch_array ( $tbl_list ) ) {
                echo '<input type="checkbox" name="tbl[]" class="tbl_list"   value="' . $row [0] . '" class="tablebox" />';
                echo $row [0];
                echo '<br>';
            }
        }
    }
    showTables ();
旧函数

 /*
    $(document).on("change", ".tablebox", function () {
        var tbls = new Array();
        $("input:checkbox[name='tbl[]']:checked").each(function () {
            tbls.push($(this).val());
        });
        var tbl = tbls.join('|');
        var yourDB = window.sessionStorage.getItem("db");
        window.location.assign("index.php?db=" + yourDB + '&tbl=' + tbl);
    });
    */

如何解决这个问题???

在ajax调用中,数据必须是对象数据:{'tbl':tbl}

您应该将{}与数据一起使用

$.ajax({
    type: "POST",
    url: "index.php",
    data: {'tbl' : tbl}
 });


ajax调用的第一件事是,数据必须是对象

data: {'tbl': tbl}
其次,Ajax不能直接调用php函数 因此,如果没有函数,index.php文件应该是这样的

 if (isset ( $_POST ['tbl'] )) {
    $tbl = $_POST ['tbl'];
    echo $tbl;
 }

这应该与工作有关

$.ajax({
    type: "POST",
    url: "someurl",
    data: {"tbl=" + tbl}
 });


有关文档,请参见此处

看起来tbls/tbl是click函数的局部变量。你什么时候叫邮局?它在这个函数里面吗?是的,它在函数里面,我在建议后已经删除了这个函数编辑了OP请看编辑了OP请看一看。
 if (isset ( $_POST ['tbl'] )) {
    $tbl = $_POST ['tbl'];
    echo $tbl;
 }
$.ajax({
    type: "POST",
    url: "someurl",
    data: {"tbl=" + tbl}
 });