通过ajax通过“确认”窗口将jQuery数组传递给PHP脚本

时间:2019-10-03 16:17:06

标签: php jquery ajax

我已经仔细阅读了所有建议的答案和重复内容,但是看不到缺少的内容。从我看到的各种解决方案中,该应该起作用。

当用户在确认弹出窗口上单击“确定”时,我正在通过Ajax将示例名称的jQuery数组传递给PHP脚本。 (当用户使用平移选择缩放方法时,将触发确认框,该方法又将在缩放框中找到的样本名称推入download_list变量。)

除了当用户单击“确定”时,它似乎没有在调用我的PHP脚本。

PHP脚本遍历输入名称,并在zip归档文件中创建一系列文件。但是尝试通过此方法传递数据的效果并不理想。

download_list示例的console.log

["b01", "1._s16", "2._s17", "3._s18 ", "4._s19", "5._s20", "6._s21", "s01", "s02", "s03", "s04", "s05", "s06", "s08", "s09", "s10", "s11", "s14", "s17", "s18"]

jQuery

map.on("boxzoomend", function(e) {
    var download_list = [];
    for (var i = 0; i < bulk_list.length; i++) {
        if (e.boxZoomBounds.contains(bulk_list[i].latlng)) {
            download_list.push(bulk_list[i].name);
        }
    }
    if (confirm("Download the microbial community data for the following samples:" + download_list.toString())) { //alert("Download Beginning");
        $.ajax({
            type: "POST",
            url: "zip_download.php",
            data: {download_list: download_list}
        });

    } else {}
});

PHP

$sample_name_list = $_REQUEST['download_list'];

echo ($sample_name_list);

2 个答案:

答案 0 :(得分:0)

在您的Jquery AJAX方法中,数据对象中的测试是什么?您应该传递d​​ownload_list变量

       $.ajax({
        type: "POST",
        url: "zip_download.php",
        data: {download_list: download_list}
    });

并且通过监视浏览器检查器的“网络”部分中的http请求,可以检查ajax是否正常工作。

答案 1 :(得分:0)

在php文件中,您正在寻找带有密钥$_REQUEST的{​​{1}}

在ajax函数中,download_listdata,但是您没有{key:value}作为有效值。将行更改为:

test