2016-10-07 26 views
-2

我遇到的問題是,當客戶端選擇不同的單選按鈕時,我試圖從畫布標籤更改圖像。如何動態更改JavaScript函數的內容?

畫布的內容與我從Illustrator獲得的繪製代碼(很多代碼)存儲在數據庫中。

我所做的第一件事是通過id來改變腳本標記中的數據,我在其中創建了繪製畫布的函數。

它運行良好,它正確繪製了繪圖。問題在於,當我選擇另一個單選按鈕時,即使腳本的內容發生更改並且該功能也如此,它將繪製相同的繪畫,而不是更新的繪畫。

我認爲發生這種情況是因爲JavaScript在已經調用過一次後沒有更新函數的內容。我錯了嗎?

如果是我遇到的問題,是否可以在調用函數後更改函數的內容?

這是html代碼:

<canvas id="myCanvasDel" height="600" width="600" style="max-width:600px;"></canvas> 
<script id="scriptjs"></script> 

這是JavaScript的一個,當我點擊單選按鈕:

function mostrarCanvas(codiprd, codicol) { 
    $.ajax({ 
     dataType: "html", 
     type: "POST", 
     url: "ajaxcanvas.php", 
     data: { 
      codiprd: codiprd, 
      codicol: codicol 
     }, 
     success: function (datos) { 

      $('#scriptjs').html(datos); 

      var canvasDel = document.getElementById("myCanvasDel"); 
      var ctxDel = canvasDel.getContext("2d"); 
      drawDel(ctxDel); 
     }, 
     error: function (e) { 
      alert('Ha habido un error: ' + e); 
     } 
    }); 
    return false; 
} 

這是PHP的AJAX文件調用:

$codiprd=$_POST['codiprd']; 
$codicol=$_POST['codicol']; 
$querycnv = "SELECT CANVAS " 
     . "FROM MYTABLE PC " 
     . "WHERE PC.CODIPRD=$codiprd AND PC.CODICOL=$codicol " 
     . "GROUP BY PC.CODIPRD,PC.CODICOL;"; 

$resultcnv = mysqli_query($conn, $querycnv)or die(mysqli_error()); 
$canvas = mysqli_fetch_array($resultcnv); 

echo $canvas['CANVAS']); 
+1

不,「功能內容」不會改變。函數是根據源代碼執行某些操作的函數。一個函數可以帶*參數*,變量,你可以在代碼中使用它來影響它正在做什麼。 – deceze

+0

#scriptsjs元素的含義是什麼?這是一個