рдирдорд╕реНрддреЗ, рдореИрдВ рдПрдХ рд╕рд░реНрд╡рд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдкреАрдПрдирдЬреА рдЫрд╡рд┐ рдХреА рддрд░рд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореИрдВ рдпрд╣ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдореИрдВ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ PHP рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)ред
рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж!
рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛:
if (isset($_POST['imageData'])) {
$imgData = base64_decode($_POST['imageData']);
$image_name= $_POST['image_name'];
// Path where the image is going to be saved
$filePath = '../img/'.$image_name.'.jpg';
// Delete previously uploaded image
if (file_exists($filePath)) { unlink($filePath); }
// Write $imgData into the image file
$file = fopen($filePath, 'w');
fwrite($file, $imgData);
fclose($file);
} else {
echo "imgData doesn't exists";
}
рдирдорд╕реНрддреЗ,
рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдкрдХрд╛ рдХреЛрдб рдХрд╣рд╛рдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж!
рдирдорд╕реНрддреЗ @stupendomen
рдореИрдВ рдкрд┐рдЫрд▓реЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ .php рдлрд╝рд╛рдЗрд▓ (signature_pad.php) рдмрдирд╛рддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ AJAX рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреИрдб рд╣реЛрддрд╛ рд╣реИ (рдЬрдм рдЖрдк рд╕реЗрд╡ рдмрдЯрди рдЦреАрдВрдЪрддреЗ рд╣реИрдВ)ред
рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
`
рд╡рд░ рдЖрд╡рд░рдг = document.getElementById ("рд╣рд╕реНрддрд╛рдХреНрд╖рд░-рдкреИрдб"),
ClearButton = wrapper.querySelector ("[рдбреЗрдЯрд╛-рдПрдХреНрд╢рди = рдХреНрд▓рд┐рдпрд░]"),
рд╕реЗрд╡рдмрдЯрди = рд░реИрдкрд░.рдХреНрд╡реЗрд░реА рдЪрдпрдирдХрд░реНрддрд╛ ("[рдбреЗрдЯрд╛-рдПрдХреНрд╢рди = рд╕реЗрд╡]"),
рдХреИрдирд╡рд╛рд╕ = рд░реИрдкрд░.рдХреНрд╡реЗрд░реА рдЪрдпрдирдХрд░реНрддрд╛ ("рдХреИрдирд╡рд╛рд╕"),
рд╕рд┐рдЧреНрдиреЗрдЪрд░рдкреИрдб;
// Adjust canvas coordinate space taking into account pixel ratio,
// to make it look crisp on mobile devices.
// This also causes canvas to be cleared.
function resizeCanvas() {
// When zoomed out to less than 100%, for some very strange reason,
// some browsers report devicePixelRatio as less than 1
// and only part of the canvas is cleared then.
var ratio = Math.max(window.devicePixelRatio || 1, 1);
canvas.width = canvas.offsetWidth * ratio;
canvas.height = canvas.offsetHeight * ratio;
canvas.getContext("2d").scale(ratio, ratio);
}
window.onresize = resizeCanvas;
resizeCanvas();
signaturePad = new SignaturePad(canvas);
clearButton.addEventListener("click", function (event) {
signaturePad.clear();
});
saveButton.addEventListener("click", function (event) {
event.preventDefault();
var nombre_receptor_form = $("#nombre_receptor_form").val();
var id_nombre_imagen = $("#id_nombre_imagen").val();
if ( signaturePad.isEmpty() ) {
alert("Please insert signature.");
} else {
var dataUrl = signaturePad.toDataURL();
document.getElementById('imagen_firma').src = dataUrl;
var imagen = dataUrl.replace(/^data:image\/(png|jpg);base64,/, "");
$.ajax({
url: './includes/signature_pad.php',
type: 'POST',
data: {
imageData: imagen
},
})
.done(function(msg) {
// Image saved successfuly.
console.log("success: " + msg);
document.getElementById("my_form").submit(); //I do this to save other information.
})
.fail(function(msg) {
console.log("error: " + msg);
});
`
рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛!
рдЙрддреНрддрдо!
рдзрдиреНрдпрд╡рд╛рдж
@davidosuna1987 рдпреЗ рджреЛ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдХрд╣рд╛рдБ рд╕реЗ рдЖ рд░рд╣реА рд╣реИрдВ?
рд╡рд░ form_receiver_name = $("#form_receiver_name").val();
var id_image_name = $("#id_image_name").val();
@davidosuna1987 @stupendomen рдореБрдЭреЗ рдЗрд╕рд╕реЗ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИ! рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдХреЙрдкреА рдХрд┐рдпрд╛ рд╣реИ рдФрд░ dbconenct.php рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝рд╛ рд╣реИ рдФрд░ рдЕрднреА рддрдХ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдорджрдж рдХрд░реЗрдВ
рдХреНрдпрд╛ рдЖрдк рдкреВрд░рд╛ рдХреЛрдб рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдХреГрдкрдпрд╛
рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж!
рдзрдиреНрдпрд╡рд╛рджред рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА !
рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж!
@davidosuna1987
рдЕрдЪреНрдЫрд╛, рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рд╕рд┐рдЧреНрдиреЗрдЪрд░рдкреИрдб рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдпрд╛ рдкреБрд░рд╛рдиреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред
рдХреНрдпрд╛ рдХреЛрдИ PHP рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ?
рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдирдорд╕реНрддреЗ @stupendomen
рдореИрдВ рдкрд┐рдЫрд▓реЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ .php рдлрд╝рд╛рдЗрд▓ (signature_pad.php) рдмрдирд╛рддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ AJAX рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреИрдб рд╣реЛрддрд╛ рд╣реИ (рдЬрдм рдЖрдк рд╕реЗрд╡ рдмрдЯрди рдЦреАрдВрдЪрддреЗ рд╣реИрдВ)ред
рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
`
рд╡рд░ рдЖрд╡рд░рдг = document.getElementById ("рд╣рд╕реНрддрд╛рдХреНрд╖рд░-рдкреИрдб"),
ClearButton = wrapper.querySelector ("[рдбреЗрдЯрд╛-рдПрдХреНрд╢рди = рдХреНрд▓рд┐рдпрд░]"),
рд╕реЗрд╡рдмрдЯрди = рд░реИрдкрд░.рдХреНрд╡реЗрд░реА рдЪрдпрдирдХрд░реНрддрд╛ ("[рдбреЗрдЯрд╛-рдПрдХреНрд╢рди = рд╕реЗрд╡]"),
рдХреИрдирд╡рд╛рд╕ = рд░реИрдкрд░.рдХреНрд╡реЗрд░реА рдЪрдпрдирдХрд░реНрддрд╛ ("рдХреИрдирд╡рд╛рд╕"),
рд╕рд┐рдЧреНрдиреЗрдЪрд░рдкреИрдб;
`
рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛!