如何使用HTML表单简单地将JavaScript数据发布到PHP

时间:2017-05-31 05:12:33

标签: javascript php jquery html ajax

我的 javascript 代码:

var data = signaturePad.toDataURL('image/png');
document.write(data);
输出看起来比较简洁:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAADICAYAAADGFbfiAAAHFklEQVR4Xu3VsQ0AAAjDMPr/0/yQ2exdLKTsHAECBAgQCAILGxMCBAgQIHAC4gkIECBAIAkISGIzIkCAAAEB8QMECB...

而不是document.write(data);我希望通过使用带有隐藏字段的简单HTML表单将数据发布到自己的页面,该表单可以保存来自JS的数据。然后,我想使用PHP来处理$_POST并将数据存储在变量...

<?php 
// check for form submission...
if(isset($_POST['send'])) {
  // get the data
  $data = $_POST['data'];
}
?>

HTML表单:

<form method="post">
  <input type="hidden" name="data" value="">
  <input type="submit" name="send" value="submit">
</form>

我知道我可以用AJAX以某种方式做到这一点,但我无法弄清楚表格,我应该怎么做呢?

我想我正在寻找2个解决方案 - 首先,如何使用JS的形式将数据存储在隐藏字段和后面,或许如何通过AJAX将其发布到PHP(如果它可以&#39) ; t刚刚发布到同一页面......

2 个答案:

答案 0 :(得分:1)

有很多方法可以实现这一目标。关于你问的方式,有一个隐藏的表单元素。

将表单更改为:

<form method="post" name="myform" method="post" action="script.php">
  <input type="hidden" name="data" value="">
  <input type="submit" name="send" value="submit">
</form>

使用Javascript:

var data = signaturePad.toDataURL('image/png');
document.myform.data.value = data;
document.forms["myform"].submit();

或者Jquery:

var data = signaturePad.toDataURL('image/png');
$('form input[name="data"]').val(data);
$("form").submit();

答案 1 :(得分:0)

像这样使用

<?php
$data="<script>signaturePad.toDataURL('image/png')</script>";
?>
<form method="post">
 <input type="hidden" name="data" value="<?php echo $data; ?>">
 <input type="submit" name="send" value="submit">
</form>

始终有效。