ユーザーがキャンバス フリー フォーム ペン ツールを使用して Web ページに直接署名できる機能があるサイトに取り組んでいます。ユーザーが「署名を適用」ボタンをクリックすると、ユーザーが描いた署名が画像に変換され、ページに保存され<img src="">
ます (以下のコードで確認できます)。この時点まで、すべてがうまく機能します。
問題は、ユーザーがフォームを送信すると、新しく作成されたキャンバス画像を投稿変数として送信しprocess.php
、署名された署名としてページにレンダリングしようとしています。image (toDataURL()) が post 変数として渡されるようですが、何らかの理由で process.php ページでレンダリングされません。画像ソースが見つからないようです。
私はJavaScriptを初めて使用し、この問題を何日も修正しようとしています。これを修正するための助けをいただければ幸いです。よろしくお願いします!
マークアップ
<div class="signature-field">
Sign:
<span class="sketch-container">
<canvas id="simple_sketch" width="350" height="100"></canvas>
</span>
Date: <input name="signature-date" type="text"><br/>
<div class="signature-buttons">
<span class="save-signature">Apply Signature | </span>
<span class="reset-canvas">| Reset Signature</span><br/>
</div>
</div>
<form method="post" action="process.php">
<input type="text" name="fname">
<input id="signature" name="signature" type="hidden">
<input type="submit">
</form>
JavaScript
$(function () {
var sktch = $('#simple_sketch').sketch();
var cleanCanvas = $('#simple_sketch')[0];
$('.save-signature').click(function () {
/* replace canvas with image */
var canvas = document.getElementById("simple_sketch");
var img = canvas.toDataURL("image/png");
$('#simple_sketch').replaceWith('<img src="' + img + '"/>');
$('.signature-buttons').replaceWith('');
document.getElementById("signature").value = $('.sketch-container').html();
});
});