2015-01-13 36 views
0

我有一個腳本,用於上傳文件夾中的文件,輸入字段和畫布。它的工作原理除了當我上傳我的畫布時,它會在文件夾被創建之前上傳它,而不會將它放入任何東西。我已經解決了這個問題,說它需要在表單和所有圖像提交後上傳..但是這會導致頁面刷新並重新設置我的畫布圖形(空白畫布)。我需要一種方法來記住頁面刷新時的畫布繪圖。這裏是我的代碼:我需要記住頁面刷新時的畫布繪製

<?php if ($savescript == 1) { ?> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     var myDrawing = document.getElementById("simple_sketch"); 
     var drawingString = myDrawing.toDataURL("image/jpg"); 
     var postData = "canvasData="+drawingString; 
     var ajax = new XMLHttpRequest(); 
     ajax.open("POST",'saveimage.php',true); 
     ajax.setRequestHeader('Content-Type', 'canvas/upload'); 
     ajax.onreadystatechange=function() 
      { 
       if (ajax.readyState == 4) 
       {alert("image saved");} 
      } 
      ajax.send(postData); 
    }); 
</script> 
<?php }; ?> 

$ savescript是基於具有1的值隱藏的輸入字段,所以在提交表單

後,它只會發送**插入標準的HTML網頁代碼這裏**

那麼這裏就是我的畫布至極的形式

<canvas id="simple_sketch" name="simple_sketch" width="800" height="300"></canvas> 
    <script type="text/javascript"> 
     $(function() { 
     $('#simple_sketch').sketch(); 
     }); 
    </script> 

所以裏面我怎麼才能讓畫布記得是在頁面重載之前繪製的?

需要HALP:p

+0

爲什麼這個問題在php –

+1

中被標記您可以將其保存爲圖像,然後在頁面重新加載時在畫布中繪製該圖像。 – Neat

+0

對不起,我也有PHP,但它不是相關的問題。我會嘗試刪除標籤 –

回答

2

頁面是否需要刷新?如果您已經進行了ajax調用,使用preventDefault可以更容易地停止刷新並讓其餘代碼執行。然後,您將能夠保持對畫布對象的引用。

+0

當使用preventDefault時,頁面不會重新加載,但它也不會提交圖像,輸入字段或創建目錄..所以我猜這不是一個我的選擇。 –

+0

@brancoholtslag這是由於'$ savescript'隱藏字段?您可能需要以編程方式設置,或者如果不再需要,可以將其刪除? – rhettro

+0

不,它阻止其他圖像上傳,它只是繼續加載和加載,但從不上傳到實際的服務器,所以它基本上不會讓我到達畫布上傳的部分。 –