JavaScript 变量传递给 PHP

标签 javascript php

我正在制作一个表格,该表格将所选总数(通过复选框)相加。在我的 JavaScript 文件 build.js 中,总计被加在一起。在我的 PHP 页面上,代码获取在上一个表单/HTML 页面上选择的项目,并将它们传递到 PHP 页面上显示的内容。我希望能够获取通过 JavaScript 在表单页面上添加的总计,并将其作为总计列出在所有选定的选项下方。

我对 PHP 和 JavaScript 的了解非常初级。这是我用这两种语言创建的第一个真实形式。我已经浏览过这个网站和整个互联网,但无法找到任何我发现有效的选项。我想我只是幸运地得到了到目前为止的表格,所以如果我的代码不是很干净,我深表歉意!

任何帮助都会很棒,请尽可能具体。这是我的代码:

添加总数的 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。我已经尝试了在其中任何一个上可以找到的任何内容,但要么没有在其中列出正确的变量,要么将其放置在错误的位置,或者根本就是错误的。

正如我所提到的,我已经在论坛上搜索了与此相关的所有内容,但我发现的任何内容都不足以满足我的一点点理解。我尝试过的其他事情包括:Pass a javascript variable value into input type hidden valuePass Javascript Variable to PHP POST除了使用 XMLHttpRequest、使用 Ajax、将其作为隐藏变量传递(我倾向于这样做,但认为我没有正确实现)以及更多 - 这几乎是我昨天一整天工作中所做的所有事情,所以我并不是想重复我的问题 - 我只是不知道我哪里出了问题。

最佳答案

看来您在这里偶然发现了它:

send the total in the form (possibly as a hidden variable)

既然您正在谈论一个页面发布到另一个页面,并且另一个页面显示结果,那么这里就不需要 AJAX。您可以像使用其他值一样使用表单值。在这种情况下,“隐藏变量”实际上是一个 input 元素:

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

在您在第一页上显示总和的 JavaScript 中:

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

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

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

只要该 input 与其他 input 元素(如 formSelectedformAddons) 那么当第一个页面发布到第二个页面时,第二个页面中的代码可以以相同的方式访问总和值:

$_POST["sum"]

关于JavaScript 变量传递给 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19181372/

相关文章:

php - 如何使用 HTTP header 缓存动态 CSS?

php - 如何在 php 中打印 ñ

php - 根据使用情况查询不同费率类别的总金额

javascript - 我的移动响应网站未正确调整大小

javascript - JQuery 点击显示保存按钮

javascript - 如何使用 Angular js 将对象数组通过 Web api 传递到 List<>

javascript - 用作函数参数后的变量变化

javascript - 是否可以从应用程序控制 iTunes(使其播放暂停的歌曲)?

php - 从 openshift 中的公共(public) url 中删除/隐藏 phpmyadmin

php - 向 $_SESSION 添加变量