WebcamJS 設定をカスタマイズして AJAX post メソッドで動作させようとしていますが、このエラーが発生します。
キャッチされていない TypeError: null のプロパティ 'submit' を読み取れません
ドキュメントを読んでコピーし、スクリプトを編集するだけで、すでにドキュメントの手順に従っています。AJAX がなければ、スクリプトは正常に機能していました。
助けてください。
ここに私のHTMLスクリプトがあります:
<section class="halaman-absen">
<div class="container">
<!-- row Form absensi -->
<form id="myform" method="post">
<div class="row row-bordered">
<!-- Kolom pengambilan gambar -->
<div class="col-md-6">
<input id="mydata" type="hidden" name="mydata" value="">
<div id="kolom-kamera"></div>
</div>
<!-- Kolom input field -->
<div class="col-md-6">
<!-- row judul halaman -->
<div class="row">
<div class="col-md-12">
<h1>Absensi Harian</h1>
</div>
</div>
<!-- hidden input -->
<input type="hidden" id="input-ip" value="<?= $ip; ?>">
<input type="hidden" id="user-penginput" value="<?= $_SESSION['username']; ?>">
<div class="form-group">
<select name="keterangan-absen" id="keterangan-absen" class="form-control">
<option value="" selected hidden>Pilih keterangan absensi</option>
<?php
$query = "SELECT kategori FROM kategori_absen";
$process = sqlsrv_query( $conn, $query );
while($data = sqlsrv_fetch_array( $process, SQLSRV_FETCH_ASSOC )) {
?>
<option value="<?= $data['kategori'] ?>"><?= $data['kategori'] ?></option>
<?php } ?>
</select>
</div>
<!-- Capture dan submit button -->
<div class="form-group">
<button type="button" id="capture-button" class="btn btn-primary">Ambil Foto</button>
<button type="button" id="submit-button" class="btn btn-primary">Kirim data</button>
</div>
</div>
</div>
</form>
</div>
</section>
<script src="http://localhost/dailyreport/assets/js/webcam.min.js"></script>
<script src="http://localhost/dailyreport/assets/js/webcam-setup.js"></script>
私の webcam-setup.js :
$(document).ready(function () {
Webcam.set({
width: 500,
height: 400,
dest_width: 500,
dest_height: 400,
image_format: 'jpeg',
jpeg_quality: 100
});
Webcam.attach('#kolom-kamera');
$('#capture-button').on('click', function () {
Webcam.snap(function (data_uri) {
document.getElementById('kolom-kamera').innerHTML = '<img class="img-responsive" src="' + data_uri + '"/>';
// var uploadGambar = $('#mydata').val();
var raw_image_data = data_uri.replace(/^data\:image\/\w+\;base64\,/, '');
document.getElementById('mydata').value = raw_image_data;
document.getElementById('myform').submit();
});
});
$('#submit-button').on('click', function() {
var inputProtocol = $('#input-ip').val();
var inputUser = $('#user-penginput').val();
var keterangan = $('#keterangan-absen').val();
var dataGambar = $('#mydata').val();
$.post('http://localhost/dailyreport/function/postingabsensi.php?ip-address=' + inputProtocol
+ '&user-penginput=' + inputUser
+ '&keterangan-absen=' + keterangan
+ '&mydata=' + dataGambar, function() {
if ( $.post == true ) {
swal({
type: 'success',
title: 'Absen berhasil!',
text: 'Data kamu berhasil dimasukkan kedalam database, selamat menjalani aktivitas!',
button: true
});
}
if ( $.post == false ) {
swal({
type: 'warning',
title: 'Absen gagal!',
text: 'Data kamu tidak valid, cek kembali dan pastikan foto dan keterangan tersedia.',
button: true
});
}
});
});
});
そしてそれは私のPHPスクリプトです:
<?php
require 'core/init.php';
global $conn;
$ip = $_GET['ip-address'];
$penginput = $_GET['user-penginput'];
$keterangan_waktu = $_GET['keterangan-absen'];
$encoded_data = $_GET['mydata'];
$binary_data = base64_decode($encoded_data);
$newname = date('YmdHis', time()).mt_rand().'.jpg';
$dir1 = 'http://localhost/dailyreport/upload/absen/'.$newname;
// save to server (beware of permissions)
$result = file_put_contents( $dir1, $binary_data );
$query = "INSERT INTO absensi_copy (keterangan, alamatip, namastaff, buktifoto)
VALUES ('$keterangan_waktu', '$ip', '$penginput', '$dir1')";
$result = sqlsrv_query( $conn, $query );