繁体   English   中英

将JavaScript变量传递给PHP

[英]JavaScript variable passed to PHP

我正在处理一种将选择的总数加起来的表格(通过复选框)。 在我的JavaScript文件build.js中,将总数加在一起。 在我的PHP页面上,代码将在上一个表单/ HTML页面上选择的项目传递给PHP页面上显示的内容。 我希望能够将通过JavaScript在表单页面上求和的总和拿到列表中,作为所有选择的所有选项下面的总和。

我对PHP和JavaScript的了解非常初级。 这是我用这两种语言创建的第一个真实表单。 我已经遍历了该站点和整个Internet,但无法获得我发现可以使用的任何选项。 我想我只是很幸运地获得了这份表格,所以如果我的代码不是很干净,我深表歉意!

任何帮助都将是惊人的,请尽可能具体。 这是我的代码:

添加总数的JavaScript:

    $(document).ready(function() { 
        $("input[type=checkbox]:checked").attr("checked", false);
    function recalculate() {        
    var sum = 0;
    $("input[type=checkbox]:checked").each(function() {
        sum += parseInt($(this).attr("rel"));
    });
    $("#output").html(sum);
    }
    $("input[type=checkbox]").change(function() {
    recalculate();
    });
    });

表格本身上写的代码显示总数:

<span id="output" class="total"></span><BR><BR>

在PHP页面上编写的代码:

<b>Estimate:</b>
<?php
  $aTruck = $_POST['formSelected'];
  if(empty($aTruck))
  {
    echo("You didn't select a truck.<BR><BR>");
  }
  else
  {
    $N = count($aTruck);
    echo("<h3>Truck Type: ");
  for($i=0; $i < $N; $i++)
    {
    echo($aTruck[$i] . " ");
    }}
  $aAddons = $_POST['formAddons'];
  if(empty($aAddons))
    { 
    echo("You didn't select any options."); 
    }
  else
  foreach ($aAddons as $v) 
    {
    echo "<h3> $v </h3>";
    }
?>

如果我没记错的话,我目前无法通过总数的原因是因为我在这里读到了一些东西:PHP在服务器上运行,而JavaScript在用户端运行。 因此,我的选择是以表格形式发送总数(可能是一个隐藏变量,我也无法弄清楚),将其传递给Ajax(我不知道我所在的服务器是否能够做到这一点) -可能是这样,并且都使用错误!),或使用XMLHttpRequest。 我已经尝试过在这些方法中找到的任何方法,或者没有在其中列出正确的变量,或者将其放置在错误的位置,或者完全是错误的。

正如我所提到的,我已经在论坛上倾尽所有与之相关的内容,而对于我所拥有的一点点了解,我发现的内容还不够具体。 我尝试过的其他方法包括: 将javascript变量值传递给输入类型的隐藏值,并将Javascript变量传递给PHP POST ,同时使用XMLHttpRequest和Ajax,将其作为隐藏变量传递(我倾向于但不希望这样做)我以为我没有正确地执行)还有更多-这几乎是我昨天整天工作的全部内容,所以我不想对我的问题重复一遍-我只是不知道我要去哪里。

您好像在这里碰到了它:

以表格形式发送总计(可能作为隐藏变量)

由于您是在谈论将一个页面发布到另一页面,而另一页面则显示结果,因此这里不需要AJAX。 您可以像其他任何表格一样使用表格值。 在这种情况下,“隐藏变量”实际上是一个input元素:

<input type="hidden" name="sum" />

在您要在首页上显示总和的JavaScript中:

$("#output").html(sum);

您还可以将该总和设置为表单元素的值:

$("#output").html(sum);
$("input[name=sum]").val(sum);

只要该input与其他input元素(例如formSelectedformAddons )处于同一form内,则当第一页发布到第二页时,第二页中的代码可以以相同的方式访问和值:

$_POST["sum"]

在您的表单中,您应该添加如下所示的隐藏输入:

<input type="hidden"  name="sum"  value="">

然后,在您的recalculate()(javasript)函数中,计算完所有内容后,就应该更改此输入的值:

function recalculate() {        
    var sum = 0;
    $("input[type=checkbox]:checked").each(function() {
        sum += parseInt($(this).attr("rel"));
    });
    $("#output").html(sum);

    // Change the hidden input value
    $("input[name='sum']").val(sum);
}

现在,提交表单后,您应该使用以下简单方法访问服务器端(PHP)的总和值:

$sum = $_POST['sum'];

暂无
暂无

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

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