繁体   English   中英

获取JavaScript计算以表单数据形式发布并显示在php页面中

[英]Get javascript calulations to post as form data and display in php page

我对JavaScript和php有点熟悉,但对HTML却非常熟悉,但是在使它们协同工作方面经验有限。 我看了很多例子,或者是不理解,或者其他帖子没有专门针对我的情况。 提交表单时,我正在尝试完成两件事。 一种是从innerHTML填充的div中检索信息,然后将其与表单一起发布,另一种是在表单发布时为交易生成唯一编号,然后进行显示。

我有一个显示已生成列表的HTML表单,每个列表旁边都有一个复选框。 选中复选框后,我将使用onclick =“ calTotal()”计算并显示所有选中的框的总数。 下面列出的代码。

显示脚本可以完美运行,并显示诸如Total $ 125.00的值。 我需要做的是在发布表单时发布该总价值。 此时唯一传递的值是最后一个复选框的值。 应该在JavaScript中分配总数,还是在输入字段中分配总数?

我的问题的第二部分涉及创建唯一交易号的算法的价值。 我想在提交表单时生成该数字,但随后需要在php页面上显示它。 我已经分别测试了算法,并且知道在对值进行硬编码时它可以正常工作。我需要从表单中获取值并使用它们来计算交易号。 计算后,需要将其传递到php页面。 同样,我也不完全确定在哪里分配该值,以使其传递到下一页。

任何能使我指出正确方向的东西都值得赞赏。

<script type="text/javascript">
  function calTotal() {
    var ch, i=0;
    var total=0;
    while(ch=document.getElementsByName("amt")[i++]) {
      if (ch.checked) 
      {
        total=total+Number(ch.value);
      }
    }
    var div=document.getElementById('divTotal');
    total="$"+total.toFixed(2);
    div.innerHTML= "Total: " +total;
    return total;
  }

function calTrans(x,y,z)
  {
  do calculations here

  // concatenate into Trans number
  var transNum=rm.concat(em,tm,am);
  return transNum;
  }
</script>

<form id="frmcheckout" action="out.php" method="post" onsubmit=calTrans()>
<table cellspacing="25">
<tbody>
  <tr>
    <th>Selection</th>
    <th>Title</th>
    <th>Cost</th>
  </tr>
  <tr>
    <td>
        <input type="checkbox" name="amt" value="$cost" onclick="calTotal()"></td>
    <td>$Title</td>
    <td>$cost</td>
  </tr>
#end
</tbody>
</table>
<table>
  <tbody>
    <tr>
      <td colspan="2">
        E-mail address:<input type="text" name="email" value="E-mail required">
      </td>
    </tr>
    <tr>
      <td>
        <div id="divTotal"></div>

      </td>
      <td>
        <input type="submit" value="Submit";>
      </td>
    </tr>
  </tbody>
</table>
</form>

您是否尝试过使用隐藏字段? 例如

<input type="hidden" name="total" id="total" value="" >

您可以对唯一的交易ID使用相同的方法。 然后,当您填充“ divTotal” div时,可以填充隐藏的字段。 例如

document.getElementById("total").value = total; 

这样,提交表单时,值将作为“总计”(在上面的示例中)传递到脚本。 您可以像这样在php中获取值:

<?php
$total = $_POST["total"];
$amount = $_POST["amount"];
$email = $_POST["email"];
$transactionId = generateTransId(<<someparams>>);//YOUR FUNCTION TO CREATE TRANS ID
?>

然后显示交易ID或将其输出到php页面上的任何地方,这是一个示例:

<div id="transId"><?php echo $transactionId; ?></div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM