Ajax jQuery发布麻烦

时间:2014-07-16 02:41:45

标签: php jquery ajax

我遇到了一些使用ajax $ .post函数将代码发送到php文件的代码,然后用它来做一些事情。我认为问题出在ajax代码中,因为我发现发布的值永远不会使它成为$ _POST数组(即$ _POST数组未设置)。但是,我不认为两端都有任何语法错误,所以我很困惑为什么它不起作用。

这是jQuery。

    if ($(e.target).hasClass('shootNames')) {
                var shootName = $(e.target).attr('id'); 
                var par = $('#' + shootName).parent().attr("id"); 

                $.post("displayImages.php", {shoot: shootName}); //the information I would like to send

                $('#' + par).load("displayImages.php").off('click', $('#' + par));
            }//end if hasClass 

和php的相关部分。

if (isset($_POST['shoot'])) {
$shootname = $_POST['shoot'][0]; //pick out just the first member of the $_POST array 
$filepath = "images/u/$foo/$shootname";
$f->FilesAsImages($filepath);
}//end if

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您在displayImages.php电话中点击$.post一次,它应该会返回您的图像,但您在那里没有success处理程序,所以它对结果没有任何作用。然后您再次使用displayImages.php再次点击.load并且不传递任何内容,因此它不会按预期执行任何操作。在您的success电话中添加$.post处理程序并在其中完成工作,就可以完成您想要的工作。

有关详情,请参阅$.post文档:http://api.jquery.com/jquery.post/

示例代码:

if ($(e.target).hasClass('shootNames')) {
    var shootName = $(e.target).attr('id');
    var par = $('#' + shootName).parent().attr("id");

    $.post("displayImages.php", {
        shoot: shootName
    }, function(data, textStatus, jqXHR) { 
        // this is the success function and the 3 arguments it gives you, remove the 2nd/3rd if you don't use them
        $('#' + par).html(data).off('click', $('#' + par)); 
    }); 
}

答案 1 :(得分:0)

尝试从此更改

 $.post("displayImages.php", {shoot: shootName}); //the information I would like to send

到这个

 $.post("displayImages.php", {'shoot[]': shootName}); //the information I would like to send

资料来源: http://api.jquery.com/jquery.post/