将 jQuery 点击处理程序与同一按钮上的 PHP 标头相结合


combine jQuery click handler with php header on same button

我有一个按钮,现在位于一个小表单中:

<form name="picSubmit" method="post">
  <button class="btn  btn-block btn-default" id="upload"><?php echo $lrow[10]; ?> <span class="glyphicon glyphicon-forward"></span></button>
</form>

然后我在页面顶部的代码:

<script language="JavaScript" src="js/cameraUserScript.js"></script>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    header('Location: view-subscribe');
}
?>

这是一些javascript/jQuery ajax代码,用于将<div>中的内容和我拍摄的图片发送到php页面,在那里我使用此内容从数据库中获取一些数据,并将该图片重命名并保存到文件夹中

document.getElementById("upload").addEventListener("click", function(){
   var dataUrl = canvas.toDataURL();
   var idVal = $('.hiddenId').html();
   $.ajax({
      type: "POST",
      url: "incl/camsave.php",
      data: { 
          imgBase64: dataUrl,
          idVal: idVal
       }
    }).done(function(msg) {
    console.log('saved');
    });

我在该提交按钮 ID 上添加了一个单击事件,以便当我单击此脚本时必须运行。它在 Chrome 中有效,但由于在 Chrome 中,如果您使用媒体处理,您必须单击信任按钮,我想使用 Mozilla,但它不起作用......它与提交按钮和点击事件的组合有关吗?

感谢您的帮助!

我不确定你为什么在这里混合使用香草JS和jQuery,但你可以通过将代码更改为这个来解决这个问题 -

$('#upload').click(function() { // you can use jQuery here too
    var dataUrl = canvas.toDataURL();
    var idVal = $('.hiddenId').html();
    $.ajax({
        type: "POST",
        url: "incl/camsave.php",
        data: { 
            imgBase64: dataUrl,
            idVal: idVal
        }
    }).done(function(msg) {
        console.log('saved');
    });
});