-2
問題は、クライアントが別のラジオボタンを選択したときにキャンバスタグから画像を変更しようとしていることです。JavaScript関数の内容を動的に変更するにはどうすればよいですか?
キャンバスの内容は、イラストレーターから入手したドローコード(多くのコード)でデータベースに保存されています。
私が最初にしたことは、スクリプトタグからidでデータを変更して、キャンバスをペイントする関数を作成したことです。
それはうまくいきました。問題は、別のラジオボタンを選択すると、スクリプトの内容が変化しても機能が変わっても、同じペイントが描画され、更新された描画は描画されないということです。
JavaScriptが関数の内容を更新するのは、この関数が既に呼び出された後に更新されないためです。私が間違っている?
私が抱えている問題なら、それが呼び出された後に関数の内容を変更することは可能ですか?
これは、htmlコードです:
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;
}
そして、これはAjaxのファイルが呼び出すPHPです:
<canvas id="myCanvasDel" height="600" width="600" style="max-width:600px;"></canvas>
<script id="scriptjs"></script>
私はラジオボタンをクリックしたとき、これはJavaScriptの一つです
$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']);
いいえ、「機能内容」は変更されません。関数とは、ソースコードに従って何かを行う関数です。関数は*パラメータ*を取ることができます。変数は、コード内で正確に何をしているかに影響を与えるために使用できます。 – deceze
#scriptsjs要素の背景は何ですか?その内容はあなたが変更しようとしている