Php 为什么回显功能在控制台中打印数据?

Php 为什么回显功能在控制台中打印数据?,php,html,ajax,echo,Php,Html,Ajax,Echo,我用PHP创建页面,但当我使用AJAX发送数据时,echo函数开始在控制台中而不是在DOM元素中打印数据 我想将Quagga条形码阅读器添加到我的页面。Quagga是用JS编写的,但我的页面是用php编写的。所以我必须使用Ajax将条形码结果发送到我的php代码。这是一个问题。发送数据(POST)并使用echo在屏幕上显示数据后,echo应该显示的每个数据都会显示在控制台中。我发送的不仅是数据,还有整个页面的html代码。即使是标题('Location:')也不能正常工作。因为我将读取的代码发送

我用PHP创建页面,但当我使用AJAX发送数据时,echo函数开始在控制台中而不是在DOM元素中打印数据

我想将Quagga条形码阅读器添加到我的页面。Quagga是用JS编写的,但我的页面是用php编写的。所以我必须使用Ajax将条形码结果发送到我的php代码。这是一个问题。发送数据(POST)并使用
echo
在屏幕上显示数据后,echo应该显示的每个数据都会显示在控制台中。我发送的不仅是数据,还有整个页面的html代码。即使是
标题('Location:')
也不能正常工作。因为我将读取的代码发送到
barcodereaded.php
,在那里我将POST数据放在
SESSION
var中,并尝试在不同的文件
barcodereresult.php
中在屏幕上回显,但每次数据都打印在控制台日志中
barcode.php
(下面的代码)。在每一个子页面上,php echo和header函数都可以正常工作,只有这一种情况会导致问题

<div id="scanner-container"></div>
<input type="button" id="btn" value="Start/Stop" />

<script src="js/quagga.min.js"></script>

<script>

    var _scannerIsRunning = false;

    function startScanner() {


        var barcode = {};
        Quagga.init({
            inputStream: {
                name: "Live",
                type: "LiveStream",
                numOfWorkers: navigator.hardwareConcurrency,
                target: document.querySelector('#scanner-container'),
                constraints: {
                    size: 1920,
                    width: 200,
                    height: 480,
                    facingMode: "environment"
                },
            },
            config: {
                frequency: 5,
            },
            locator: {
                patchSize: "x-large",
            },
            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) {
            Quagga.stop();
            barcode.code = result.codeResult.code;
            $.ajax({
                url: "barcodereaded.php",
                method: "POST",
                data: barcode,
                success: function(res){
                    console.log(res);
                }

            });
        });
    }

    // Start/stop scanner
    document.getElementById("btn").addEventListener("click", function () {
        if (_scannerIsRunning) {
            Quagga.stop();
            _scannerIsRunning = false;
        } else {
            startScanner();
        }
    }, false);
</script>

var\u scannerIsRunning=假;
函数startScanner(){
var条码={};
Quagga.init({
输入流:{
姓名:“现场”,
键入:“LiveStream”,
numOfWorkers:navigator.hardwareConcurrency,
目标:document.querySelector(“#scanner container”),
限制条件:{
尺寸:1920,
宽度:200,
身高:480,
面向模式:“环境”
},
},
配置:{
频率:5,
},
定位器:{
补丁大小:“x-large”,
},
解码器:{
读者:[
“代码读取器”,
“ean_阅读器”,
“ean_8_阅读器”,
“代码阅读器”,
“代码\u 39\u vin\u读取器”,
“codabar_阅读器”,
“upc_阅读器”,
“upc_e_阅读器”,
“i2of5\U读卡器”
],
调试:{
showCanvas:没错,
是的,
这是真的,
是的,
showLabels:没错,
showPatchLabels:对,
showRemainingPatchLabels:正确,
boxFromPatches:{
对,,
showTransformedBox:正确,
showBB:是的
}
}
},
},函数(err){
如果(错误){
控制台日志(err);
返回
}
log(“初始化完成。准备启动”);
Quagga.start();
//将标志设置为正在运行
_扫描仪正在运行=真;
});
Quagga.onProcessed(函数(结果){
var drawingCtx=Quagga.canvas.ctx.overlay,
drawingCanvas=Quagga.canvas.dom.overlay;
如果(结果){
如果(结果框){
clearRect(0,0,parseInt(drawingCanvas.getAttribute(“宽度”)),parseInt(drawingCanvas.getAttribute(“高度”));
result.box.filter(函数(框){
返回框!==result.box;
}).forEach(功能(框){
drawPath(框,{x:0,y:1},drawingCtx,{color:“green”,线宽:2});
});
}
如果(结果框){
drawPath(result.box,{x:0,y:1},drawingCtx,{color:“#00F”,线宽:2});
}
if(result.codesult&&result.codesult.code){
drawPath(result.line,{x:'x',y:'y'},drawingCtx,{color:'red',线宽:3});
}
}
});
Quagga.onDetected(函数(结果){
嘎嘎。停止();
barcode.code=result.codesult.code;
$.ajax({
url:“barcodereaded.php”,
方法:“张贴”,
数据:条形码,
成功:功能(res){
控制台日志(res);
}
});
});
}
//启动/停止扫描仪
document.getElementById(“btn”).addEventListener(“单击”,函数)(){
如果(\u扫描仪正在运行){
嘎嘎。停止();
_扫描仪正在运行=错误;
}否则{
startScanner();
}
},假);

我只想将读取的条形码发送到其他文件,将其转换为我要添加到数据库的数据(托盘上的元素数量、生产日期等)

查看代码的这一部分:

$.ajax({
    url: "barcodereaded.php",
    method: "POST",
    data: barcode,
    success: function(res){
        console.log(res);
    }

});
success
方法告诉您如何处理ajax代码的结果。 在这里,您特别要求将响应(res)记录到控制台

相反,您可以使用
res
的内容,通过首选的Javascript解决方案(香草、jQuery等)将其附加到dom中

使用jQuery,您可以(如果php代码的结果是一些文本):


查看代码的这一部分:

$.ajax({
    url: "barcodereaded.php",
    method: "POST",
    data: barcode,
    success: function(res){
        console.log(res);
    }

});
success
方法告诉您如何处理ajax代码的结果。 在这里,您特别要求将响应(res)记录到控制台

相反,您可以使用
res
的内容,通过首选的Javascript解决方案(香草、jQuery等)将其附加到dom中

使用jQuery,您可以(如果php代码的结果是一些文本):


你能为这个添加一个js提琴吗!JS不是我喜欢的东西,这个项目是我学习一些高级php编码的方式。是的,当你不习惯JS时,JS可能会很棘手,我也去过那里!如果有效的话