gpt4 book ai didi

PHP 脚本不接收 jQuery POST

转载 作者:可可西里 更新时间:2023-11-01 01:01:23 26 4
gpt4 key购买 nike

首先,我是一个 jQuery 菜鸟和一个完全的 PHP 菜鸟,所以如果这是一个愚蠢的问题,我很抱歉(虽然我已经在互联网上搜索过,具体来说,这个网站上下无法确定找出我做错了什么)。此外,如果您看到任何其他错误/困惑代码等,请不要犹豫告诉我 :)。

我正在尝试创建一个画廊,其中有一个上一个按钮和一个下一个按钮。当您单击上一个时,img-tag 的 src 属性通过 jquery 更改为上一个图像,与下一个按钮和下一个图像相同。但是,当您按下上一个按钮并且当前图像是第一张图像时,我希望它返回到最后一张图像。我需要动态地发生这种情况,因为我有几个这样的画廊,其中的图片总数不同。现在,我目前的做法是(大致):

  • 将点击按钮的方向参数发送到我的图像切换函数(“向后”或“向前”)

  • 提取图像源的文件路径并将其发布到外部PHP脚本,然后计算其中的文件数目录。

  • 检查方向参数是否为正向。如是,增加当前图像文件名末尾的数字一个。如果不是,则减一(导致文件不存在姓名)。此新文件名分配给 nextImage 变量。

  • 检查 nextImage 是否存在。如果是,将其指定为的img src 属性。如果不是,从外部获取文件数PHP脚本,实现到nextImage中作为文件号和然后将其分配给 src 属性。

大部分都有效。但是,在第一张图片上单击上一张时不会获取最后一张图片。我已经进行了一些调试并将其缩小到似乎停止工作的程度。 Firebug 告诉我 jQuery POST 函数有效(并且我也收到了成功警报)并且它将我想要的数据发布到 PHP 文件。但是,在 PHP 脚本中,永远不会进入 if (isset($_POST["id1"])) 分支。它总是直接进入 else 分支,即使我基本上已经从该站点上接受的答案中复制并粘贴了整个脚本。

这是 jQuery 代码:

var nextImageLength = " ";
var nextImage = " ";
var imageString = " ";
var nextImageStr = " ";
var nextImageNmb = 0;

var countImageLength = function($countimagelength) {
nextImageLength = nextImageStr.length;
if (nextImageLength < 3) {
if (nextImageLength < 2) {
nextImage = imageString + '00' + nextImageStr + '.jpg';
}
else {
nextImage = imageString + '0' + nextImageStr + '.jpg';
}
}
else {
nextImage = imageString + nextImageStr + '.jpg';
}
}

function multiPageToggle(direction) {
var currentImage = $(".viewport_img_high").attr("src");
imageString = currentImage.slice( 0, 35 );
$.ajax(
{
type: "POST",
url: "countImages.php",

data: { id1: imageString},
success: function (count) {
//alert('success');

}
});
var currentImageNmb = currentImage.slice(-7, -4);
if (direction == "forward") {
nextImageNmb = (parseInt(currentImageNmb)) + 1;
}
else {
nextImageNmb = (parseInt(currentImageNmb)) - 1;
}
nextImageStr = nextImageNmb.toString();
countImageLength();
$.get(nextImage)
.done(function() {
$(".viewport_img_high").attr("src", nextImage);
}).fail(function() {
if (nextImageNmb < 1) {
$.get('countImages.php', function(count) {
nextImageStr = count;
});
countImageLength();
$(".viewport_img_high").attr("src", nextImage);
}
else {
nextImageStr = "1";
countImageLength();
$(".viewport_img_high").attr("src", nextImage);
}
});
}

这是我的 PHP 脚本:

<?php
if (isset($_POST["id1"]))
{
$imgStr = $id1;
}
else
{
$imgStr = "1";
echo "Oops. Something went really wrong here.";
}
$imagePath = "c:/xampp/htdocs/portfolio/images2/" + $imgStr + "/";
$count = iterator_count(new DirectoryIterator($imagePath));
echo $count;
?>

编辑:我将在下面添加一些 Firebug 数据。也许这有助于理解这一点。响应头:

Connection  Keep-Alive
Content-Length 77
Content-Type text/html
Date Tue, 15 Jul 2014 04:26:24 GMT
Keep-Alive timeout=5, max=100
Server Apache/2.4.7 (Win32) OpenSSL/1.0.1e PHP/5.5.9
X-Powered-By PHP/5.5.9

请求 header :

Accept  */*
Accept-Encoding gzip, deflate
Accept-Language de,en-US;q=0.7,en;q=0.3
Cache-Control no-cache
Connection keep-alive
Content-Length 43
Content-Type application/x-www-form-urlencoded; charset=UTF-8
Host localhost
Pragma no-cache
Referer http://localhost/portfolio/index_b.php
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0
X-Requested-With XMLHttpRequest

响应:

array(1) {
["id1"]=>
string(35) "images2/des004_large_/des004_large_"
}
0

最佳答案

行:

$imgStr = $id1;

应该是:

$imgStr = $_POST['id1'];

关于PHP 脚本不接收 jQuery POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24728590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com