我遇到了一些使用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
感谢您的帮助。
答案 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