用iframe 里面加載的圖片???
創(chuàng)新互聯(lián)公司專注于嵐山網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供嵐山營銷型網(wǎng)站建設(shè),嵐山網(wǎng)站制作、嵐山網(wǎng)頁設(shè)計、嵐山網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務(wù),打造嵐山網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供嵐山網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
post不出去的 不用想了。
提示 不要用iframe容器,因為父級框架中 無法 提交子框架的 表單。 僅僅用原生的提交表單按鈕? 是絕對不可能的操作。
如果可以 改用div容器。顯示預(yù)覽,然后 提交原父級表單中的input type="file" 可以post傳遞文件。 iframe下的表單 僅僅用原生的 提交表單按鈕 你post不出去
如果又能力自己重寫提交動作,重組post數(shù)據(jù)(jq很簡單實現(xiàn)這個)。也可以提交iframe下的子表單的input數(shù)據(jù)。
以下是我用的 簡單的帶圖片預(yù)覽上傳的 部分代碼
引用以下庫
ajaxfileupload.js
jquery-migrate-1.2.1.min.js
jquery-1.11.0.min.js
$('input#but_upload').click(function(){
//picdata=$('input#picfile').val;
tc?=?$('div#tags').children('span.selecttag').eq(0).attr('mete_id');
tout?=?$('div#infos').children('div#sel_mod').find('li.selected').last().attr('mete_hash_name');
if?(typeof(tc)?==?'undefined'){
$('p#outerdebug').text('請選擇一個標(biāo)簽');
return?false;
}
if?(typeof(tout)?==?'undefined'){
$('p#outerdebug').text('請選擇上傳圖片所在的模板框架');
return?false;
}
if?($("#picfile").val().length?=?0)?{
$('p#outerdebug').text('請選擇一個要上傳的本地文件');
return?false;
}
$.ajaxFileUpload({
url:?"postpic.php?token="?+?token?+"tags="?+?tc+"hash_name="?+?tout,?
secureuri:false,
type:?'post',
fileElementId:?'picfile',
dataType:?'json',
success:?function(data,status){
if?(data.success?==?true){
tempstr?=?"div?class=\"pics\"?mete_hash=\""?+?data.hash_name?+?"\"div?class=\"prepic\"img?src=\""?+?data.url?+?"\"/divdiv?class=\"act\"div?class=\"removethis\"?onclick=\"removethis(this)\"/divdiv?class=\"reflink\"?onclick=\"reflink(this)\"/div/div/div";
$("div#previews").prepend(tempstr);
}?else?{
$('p#outerdebug').text(data.error);
}
},
error:?function?(data,?status,?e)//服務(wù)器響應(yīng)失敗處理函數(shù)
{
$('p#outerdebug').text('BR_0'+e);
}
});
})
HTML
forminput?id="picfile"?name="picfile"?type="file"?size="2000000"/br?/input?id="but_upload"?type="button"?value="上傳"?/hr?//formp?id="outerdebug"/pdiv?id="previews"hr?style="?clear:both;?visibility:hidden;"/
順帶一提的是,這個實現(xiàn)異步提交上傳文件的js庫,實際上就是利用了iframe,在iframe子框架內(nèi)提前實現(xiàn)了一次post。
另外,從用戶端執(zhí)行效果出發(fā)。不建議用iframe。 iframe加載是使用的主線程句柄。如果iframe頁面響應(yīng)時間過長。會導(dǎo)致全部頁面,包括父級頁面鎖死。用戶體驗較差。 能用ajax異步,盡量用。? 我還沒遇到過ajax加載 輸入到div容器,用戶體驗感反而比iframe差的情況。
直接用$_POST['data'];獲取即可的;
$data?=?$_POST['data'];
echo?'pre';
print_r($data);
die();
這樣就是一個數(shù)組,你無需再用什么序列化、反序列化之類的,你可以輸出$_POST的數(shù)據(jù)看看就知道勒!(*^__^*)?
若有任何其它疑問,歡迎追問......
邏輯是這樣的,jQuery發(fā)送數(shù)據(jù)ID=1到getXX.php中,在php中接收:$id=$_POST['ID'],然后你應(yīng)該是利用ID=1這個條件,來查詢出一些東西,將這些東西返回給前臺jQuery(就是你說的讓jQuery接收): echo json_encode(你要返回給jQuery的東西);exit();jQuery接收到的東西就是function中的data,但是是個字符串,可以利用jQuery中的var data = JSON.parse(data)將字符串轉(zhuǎn)換成對象(下面就是你說的遍歷數(shù)組),然后寫一個循環(huán)遍歷出數(shù)組即可:for(var i=0;idata.length;i++){alert(data[i].name(數(shù)組中的一個字段)}