返回列表 發帖
請問,如果要在預覽小圖,點X的時候,就實際刪除檔案,而不是等送出表單再作的話,請問要怎麼下手?

TOP

謝謝您的回覆~
我想,刪檔,就先放一邊吧 ^^

另外,實際使用上,發現有個問題:
我預設是使用三張圖片,但時常送出表單後,第三張圖片是空的(也就是陣列的第三個元素沒有內容),可是,實際圖片確實都有上傳了,也在伺服器都看到了。
換句話說,不管設定使用者可以上傳幾張,預覽都會正常,可是上傳的最後一張圖片的接收陣列,只要滑鼠沒滑過圖片,就時常會是空的....
不知道這是為什麼?

謝謝耐心的觀看問題 ^^

TOP

表單送出前,圖片上傳,預覽都沒問題,照您說的,在client端用 alert 看 myImageUploader1.getFiles() 的值,也都正確:
<input type="button" value="ALERT" onclick="var tt=myImageUploader1.getFiles();alert(tt);">
因為 myImageUploader1.getFiles() 我是寫到 pics_name[] 裡面,所以表單接收頁的程式:
$pics_name = explode(",",$_POST['pics_name']); //圖片的檔
<div align="center"><img src=<? echo $pics_name[0]; ?> /> &nbsp; <img src=<? echo $pics_name[1]; ?> /> &nbsp; <img src=<? echo $pics_name[2]; ?> /></div>
但送出表單後,$pics_name[2] 的值,也就是第三張圖(最後一張圖),經常都是空值,現在發現,必須送出表單前,滑鼠要移過第三張(或是最後一張)預覽圖後,表單接受頁的 $pics_name[2] 才會有值.

謝謝大大回覆得如此迅速!

TOP

謝謝大大回覆~

我發現我是如此取值的:
<div id="upload_block" onmouseout="return( sendPicName(form_mwo,'pics_name') );">
        <div id="preview_block"></div>
                <div style="clear: both;"><span id="image_input_block"></span></div>
而sendPicName這隻副程式:
/*取得上傳的圖案檔名*/
function sendPicName(fm,el_name) {   
  document.getElementById(el_name).value = myImageUploader1.getFiles();
} 
因為使用的是onmouseout來判斷,難怪會出現這樣的問題,是吧?
不知道,大大有何判讀的建議?似乎 onmouseout 或 onmousemove 都有相同問題:滑鼠必須滑過預覽圖,才能正確取值...

TOP

小弟不才,想說,使用者一定會將滑鼠移動到按鈕處(不管他要預覽或真的送出表單),於是,將取值判斷的動作,放在表單按鈕的那個表格TR之中,試了一下:
  <tr onMouseOver="return( sendPicName('pics_name') )">
    <td colspan="4" align="center">
    <input type="hidden" name="form_action" id="form_action" value="mws">
                <input type="hidden" name="m_type" id="m_type" value="ws">
                <input type="hidden" name="pics_name" id="pics_name">
                <input type="submit" value="填好資料,送出註冊!" onclick="form_mws.action='registeration.php'; form_mws.target='_self';">
                <input type="button" value="註冊資料預覽!" onclick="form_mws.action='preview_regdata.php'; form_mws.target='_blank'; this.form.submit();">
        </td>
  </tr>
結果,居然效果出奇的好耶!好像就不會有取不到值的事情發生了!
果然,一個人想,不如拿出來討論,這樣也會讓自己想的層面變多變廣了 ^^

或是,還有沒有其他更好的方式?請大大教導一下!謝謝。

TOP

其實說要檢查表單,我都有檢查...
但是,比方說,最大上傳三張圖,但使用者只要上傳兩張,那我也不能硬要他塞三張阿.. XD

阿對了,如果將程式應用在"編輯資料",也就是說,使用者上傳後,也送出表單了,日後的修改...
原來,放預設圖的欄位:
existImages: ''
請問,這個地方,我要放上使用者之前上傳的圖片的路徑與檔名,請問,該怎樣將值傳進去?
因為,我是用php,但php與javascript是無法互相傳參數的不是嗎?
我可以讀出之前使用者送出表單後的資料,比方說,使用者最後我寫入資料庫的圖片資料欄位,內容是 'user/pic1.jpg,user/pic2.jpg,user/pic3.jpg'
我可以用php+mysql讀到某個陣列裡,比方說是$user_data['pics'],所以$user_data['pics']='user/pic1.jpg,user/pic2.jpg,user/pic3.jpg'
但該如何將
<script type="text/javascript">
$(function() {
  myImageUploader1 = new JSG.imgUploader({
    fileLimits: 3,
    actionUrl: 'store_pic_upload.php',
    inputContainer: 'image_input_block',
    previewContainer: 'preview_block',
    existImages: ''
  });
</script>
變成
<script type="text/javascript">
$(function() {
  myImageUploader1 = new JSG.imgUploader({
    fileLimits: 3,
    actionUrl: 'store_pic_upload.php',
    inputContainer: 'image_input_block',
    previewContainer: 'preview_block',
    existImages: 'user/pic1.jpg,user/pic2.jpg,user/pic3.jpg'
  });
</script>
應該沒辦法直接用下面的方式這樣吧?
existImages: $user_data['pics']  
謝謝大大觀看問題..

TOP

返回列表 回復 發帖