热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP脚本未接收到来自jQuery的POST请求

首先,我有点像jQuerynoob和整个PHPnoob,所以如果这是一个愚蠢的问题,我感到很抱歉(尽管我已经搜索了Internet,尤其是这个网站的上下无法弄清我的意思.错了).另

首先,我有点像jQuery noob和整个PHP noob,所以如果这是一个愚蠢的问题,我感到很抱歉(尽管我已经搜索了Internet,尤其是这个网站的上下无法弄清我的意思.错了).另外,如果您看到任何其他错误/混乱的代码等,请不要犹豫告诉我:).

我正在尝试创建一个具有上一个和下一个按钮的画廊.当您单击上一个时,img标签的src属性通过jquery更改为上一个图像,并且与下一个buton和下一个图像相同.但是,当您按上一个按钮并且当前图像是第一张图像时,我希望它返回到最后一张图像.我需要动态地进行此操作,因为其中有几个画廊的图片总数不同.现在,我当前的方法是(大致):

>将方向参数从单击的按钮发送到我的图像切换
功能(“向后”或“向前”)
>提取图像源的文件路径并将其发布到外部
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脚本:

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

请求标头:

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'];


推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 本文探讨了在不使用服务器控件的情况下,如何通过多种方法获取并修改页面中的HTML元素值。除了常见的AJAX方式,还介绍了其他可行的技术方案。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文提供了一个详尽的前端开发资源列表,涵盖了从基础入门到高级应用的各个方面,包括HTML5、CSS3、JavaScript框架及库、移动开发、API接口、工具与插件等。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 如何在PHPCMS V9中实现多站点功能并配置独立域名与动态URL
    本文介绍如何在PHPCMS V9中创建和管理多个站点,包括配置独立域名、设置动态URL,并确保各子站能够正常运行。我们将详细讲解从新建站点到最终配置路由的每一步骤。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 本文介绍了如何使用PHP代码实现微信平台的媒体素材上传功能,详细解释了API接口的使用方法和注意事项,确保文件路径正确以避免常见的错误。 ... [详细]
author-avatar
benbowujixian
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有