Я использую Quagga.min. js, чтобы получить штрих-код с веб-страницы, который будет действовать как устройство ввода / вывода тактовых импульсов
Этот скрипт находится в индексе. php и работает хорошо. Я вижу код, зарегистрированный в консоли правильно.
Barcode detected and processed : [003] {codeResult: {…}, line: Array(2), angle: -0.0032847027625808128, pattern: Array(145), threshold: undefined, …}angle: -0.0032847027625808128box: (4) [Array(2), Array(2), Array(2), Array(2)]boxes: [Array(4)]codeResult: code: "003"decodedCodes: (3) ["0", "0", "3"]direction: -1end: 0format: "code_39"start: 122startInfo: {start: 23, end: 45}__proto__: Objectline: (2) [{…}, {…}]pattern: (145) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, …]threshold: undefined__proto__: Object
Как я могу получить это в php переменную $employeeid
или (javascript переменная? ), а затем передайте это в поля формы ниже.
<form action="/clockin.php" method="get">
<input type="text" name="employeeid" id="employeeid" value="<php? echo $employeeid ;?>" hidden>
<input type="submit" value="Clockin">
</form>
<form action="/clockout.php" method="get">
<input type="text" name="employeeid" id="employeeid" value="<php? echo $employeeid ;?>" hidden>
<input type="submit" value="Clockout">
</form>
Код javascript приведен ниже для справки
Спасибо
<script>
var _scannerIsRunning = false;
function startScanner() {
Quagga.init({
inputStream: {
name: "Live",
type: "LiveStream",
target: document.querySelector('#scanner-container'),
constraints: {
width: 480,
height: 320,
facingMode: "environment"
},
},
decoder: {
readers: [
"code_128_reader",
"ean_reader",
"ean_8_reader",
"code_39_reader",
"code_39_vin_reader",
"codabar_reader",
"upc_reader",
"upc_e_reader",
"i2of5_reader"
],
debug: {
showCanvas: true,
showPatches: true,
showFoundPatches: true,
showSkeleton: true,
showLabels: true,
showPatchLabels: true,
showRemainingPatchLabels: true,
boxFromPatches: {
showTransformed: true,
showTransformedBox: true,
showBB: true
}
}
},
}, function (err) {
if (err) {
console.log(err);
return
}
console.log("Initialization finished. Ready to start");
Quagga.start();
// Set flag to is running
_scannerIsRunning = true;
});
Quagga.onProcessed(function (result) {
var drawingCtx = Quagga.canvas.ctx.overlay,
drawingCanvas = Quagga.canvas.dom.overlay;
if (result) {
if (result.boxes) {
drawingCtx.clearRect(0, 0, parseInt(drawingCanvas.getAttribute("width")), parseInt(drawingCanvas.getAttribute("height")));
result.boxes.filter(function (box) {
return box !== result.box;
}).forEach(function (box) {
Quagga.ImageDebug.drawPath(box, { x: 0, y: 1 }, drawingCtx, { color: "green", lineWidth: 2 });
});
}
if (result.box) {
Quagga.ImageDebug.drawPath(result.box, { x: 0, y: 1 }, drawingCtx, { color: "#00F", lineWidth: 2 });
}
if (result.codeResult && result.codeResult.code) {
Quagga.ImageDebug.drawPath(result.line, { x: 'x', y: 'y' }, drawingCtx, { color: 'red', lineWidth: 3 });
}
}
});
Quagga.onDetected(function (result) {
console.log("Barcode detected and processed : [" + result.codeResult.code + "]", result);
});
}
// Start/stop scanner
document.getElementById("btn").addEventListener("click", function () {
if (_scannerIsRunning) {
Quagga.stop();
} else {
startScanner();
}
}, false);
</script>