$(document).ready(function(){
$("#tijiao").click(function(){
var images = document.getElementsByClassName("c1");
var imageStr = "";
for(var i=0;i<images.length;i++){
imageStr+=images[i].src+'__';
}
var imageStr;//你要发送的参数
$.ajax({
type:"POST",
url:"1.PHP",
data:{
IMGSTR:imageStr
},
});
});
});
我的数据提交到1.PHP后会自动打包下载。
做了ajax提交图片地址到1.php,发现不会跳出下载框,可能是无刷新提交的原因。
谁帮我改一下?
Ajax
提交后, 建议返回不要用print_r
, 因为该方法的输出是这种形式
Array
(
[0] => Array
(
[image_src] => http://ddd.d.dd.dasd/1111.xxx
[image_name] => 711.xxx
)
[1] => Array
(
[image_src] => http://ddd.d.dd.dasd/2.sss
[image_name] => 840.sss
)
[2] => Array
(
[image_src] => http://ddd.d.dd.dasd/3.aaa
[image_name] => 331.aaa
)
)
而ajax
请求是默认的dataType
时根据服务器返回的MIME
来判定的
dataType
类型:String
预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:
"xml": 返回 XML 文档,可用 jQuery 处理。
"html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
"json": 返回 JSON 数据 。
"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
"text": 返回纯文本字符串
所以print_r
返回的信息浏览器会当成text
处理, 建议服务器直接返回json
$imageStrs = $_POST['IMGSTR'];
$image = explode('__', $imageStrs, -1);
foreach($image as $key => $v) {
unset($image[$key]);
$image[$key]['image_src'] = $v;
$v=substr($v,-4);//去除前面
$image[$key]['image_name'] = mt_rand(1, 1111) .$v;
}
echo json_decode($image);//-------------------------
exit;