У меня есть элемент canvas для сбора подписи пользователей, затем у меня есть кнопка с функцией onclick для сохранения подписи на сервере, которая запускает сценарий ajax для POST-данных в файл php. У меня проблема в том, что, хотя данные сохраняются, мне нужно нажать кнопку и затем обновить страницу, чтобы событие сохранения произошло. Пожалуйста, помогите мне увидеть, где я ошибся, поскольку мне не нужно делать обновление вручную. Код ниже.
HTML-элемент Canvas:
<div class="signature-pad--body">
<canvas id="signCanvas"></canvas>
</div>
<div class="signature-pad--footer">
<div class="description">Sign above</div>
<div class="signature-pad--actions">
<div>
<button type="button" class="button clear" data-action="clear">Clear</button>
<button type="button" class="button" data-action="undo">Undo</button>
</div>
<div>
<input type="button" class="button save" onclick="signUploader()" id="signReady" value="Upload above Signature" />
</div>
</div>
</div>
</div>
JS Ajax-скрипт:
<script type="text/javascript">
function signUploader() {
// Generate the image data
var pic = canvas.toDataURL('image/png');
pic = "data="+pic;
console.log(pic); //just for seeing that it's working
$.ajax({
url: "includes/signSave.php",
type: "POST",
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
dataType: "text",
data: pic ,
beforeSend : function() {
$("#signCanvas").fadeOut(); }
});
}
</script>
signSave.php
<?php
$img = $_POST['data'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$fileData = base64_decode($img);
$file = '../../uploads/signature' . time() . '.png';
file_put_contents($file, $fileData);
?>
ThisЯ впервые играю с ajax, поэтому, пожалуйста, помогите мне и объясните, есть ли там ошибки. Спасибо