php+ajax+jquery后台程序处理

其实这个是接着上一个ajax的处理。

这几篇文章其实都是为了这个小的淘宝应用服务的。

昨天做了预览,今天贴出生成图片的那个ajax。

实际上图片处理这块一开始就讲过了,以下两篇文章。一个是优化的一个未优化的。

http://blog.csdn.net/pengli2014/article/details/20768921

http://blog.csdn.net/pengli2014/article/details/20805673

光说不练假把式。上代码。

css代码,实际比昨天的多出来了一段。

table { font-size:12px; border:1px solid #dedede; margin:0 auto; }
table tr td { border: 1px solid #B1CDE3; background: #fff; font-size:12px; padding: 3px 3px 3px 8px; color: #4f6b72; }
table tr .title { text-align:left; }
.window { width:480px; background-color:#d0def0; position:absolute; padding:2px; margin:5px; display:none; } 
.window2 { position:absolute; display:none; background-color:#d0def0; width:450px; height:200px; line-height:200px; font-size:20px; color:red; text-align:center; }
.window .close { position:absolute; right:0px; top:0px; width:40px; height:20px; text-align:center; color:red; font-weight:bold; cursor:pointer; }
close按钮,实际不是一个按钮,想怎么变,自己改css样式吧。

生成图片的混编代码。

<td><a href="javascript:create_picture('<?php echo $v['gid']; ?>')">仅图片生成</a></td>

jquery代码和ajax

function create_picture(id){
	$.ajax({
		url:		"create_pic.php",
		data:		{ gid: id },
		dataType:	"json",
		beforeSend:	function(){
						//alert("before!");
						$(".window2").attr("display","block").html("图片生成中,请稍等………").css("top","30%").css("color","red").css("left","40%").slideToggle("slow"); 
					},
		complete:	function(data,status){
						//alert("success!");
						$(".window2").html("图片生成完毕了!").css("color","green").hide(3000); 
					}	
	})
}

最后是create_pic.php代码

$gid = isset($_GET['gid'])? $_GET['gid'] : exit("paramer error");//商品id

$goods = new Goods($c,$sessionKey);
$itemInfo = $goods->getGoodsInfo($gid);
if(isset($itemInfo['item']['item_imgs']))
{
	$itemPic = $itemInfo['item']['item_imgs']['item_img'];
	foreach($itemPic as $k => $v)
	{
		$imgs[] = $v['url'];
	}
}
else
{
	exit("商品图片不存在!");
}

/*
$imgs = array(
		"http://img03.taobaocdn.com/imgextra/i3/444857673/T2kr2kXApXXXXXXXXX-444857673.gif",
		"http://img01.taobaocdn.com/imgextra/i1/444857673/T22SfkXClXXXXXXXXX-444857673.jpg",
		"http://img03.taobaocdn.com/imgextra/i3/444857673/T22gMPXkRaXXXXXXXX_!!444857673.jpg"
	);
*/
$width = 480;
$dir = "temp_pic\\".$gid."\\";
/*开始生成图片*/
if(!is_dir($dir))
{
	mkdir($dir);
}
else
{
	echo "目录已经存在";
}
$picName = "1-".$gid.".jpg";
$picObject = new Picture2($imgs,$dir);
$picArr = $picObject->createPicWithByWidth($width);
$mark = $picObject->joinPic($picArr,$width,$picName);
$pic = $picObject->picToCode($dir.$picName);//2进制

$dbObject = new Db('goods_info');
if($mark)
{
	$where = " WHERE gid='".$gid."'";
	$dbObject->update(array("status"=>1,"picture"=>$pic,"create_pic_time"=>time()),$where);//更新商品状态。
	$dbObject->mysql_close();
}


其实这段代码不需要返回什么,就是处理就好。

ok,先贴这么多,我优化代码之后会贴出更新的版本。

我觉得success一直没有成功,原来是返回数据的类型在作怪。

换成如下的jquery代码。

function create_picture(id){
	$.ajax({
		type:		"GET",
		url:		"create_pic.php",
		data:		{ gid: id },
		dataType:	"html",
		beforeSend:	function(){
						alert(1111);
						$(".window2").attr("display","block").html("图片生成中,请稍等………").css("top","30%").css("color","red").css("left","40%").slideToggle("slow"); 
					},
		
		success:	function(data){
						alert(data);
						$(".window2").html("图片生成完毕了!"+data).css("color","green").hide(3000); 
					},	
		
		error:		function(XMLHttpRequest, textStatus, errorThrown){
						alert(textStatus);
					}
	})
}

dataType: "html",

返回的数据类型千万要注意了。

另外状态顺序是,before,success,error,complete.

(最后编辑:2014年3月15日12:12:48)




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TP3.2 是一个基于PHP的开源框架,它提供了很多方便的功能,其中包括利用jQuery Ajax实现分页功能。下面是一个例子说明如何使用jQuery Ajax实现前台与后台的分页功能: 前台源码: ```html <!DOCTYPE html> <html> <head> <title>分页示例</title> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script> $(document).ready(function(){ var currentPage = 1; // 当前页码 // 加载数据函数 function loadData(page){ $.ajax({ url: 'loadData.php', type: 'POST', data: {page: page}, success: function(response){ $("#dataContainer").html(response); } }); } // 初始加载数据 loadData(currentPage); // 点击页面切换按钮 $(document).on("click", ".pagination a", function(e){ e.preventDefault(); var page = $(this).attr("data-page"); currentPage = page; loadData(currentPage); }); }); </script> </head> <body> <div id="dataContainer"></div> </body> </html> ``` 后台源码(loadData.php): ```php <?php include "dbconfig.php"; // 引入数据库配置文件 $page = $_POST['page']; $perPage = 10; // 每页显示记录数 $offset = ($page - 1) * $perPage; // 计算偏移量 $result = $conn->query("SELECT * FROM your_table LIMIT $offset, $perPage"); if ($result->num_rows > 0) { // 输出数据 while($row = $result->fetch_assoc()) { echo "<p>{$row['name']}</p>"; } } $conn->close(); ?> ``` 上述代码中,前台页面加载时会发送一个Ajax请求到后台的`loadData.php`文件,同时传递一个`page`参数表示当前页码。后台根据参数查询对应的数据,并将结果返回给前台,然后前台更新页面内容。用户可以通过点击页面切换按钮,改变`page`参数的值,从而实现翻页功能。 需要注意,后台代码中的`dbconfig.php`文件应该包含数据库连接的配置信息,以确保能够成功连接数据库并查询数据。 这只是一个简单的分页功能示例,你可以根据自己的实际情况进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值