Php 如何在表单之间有效地将价格值从一个页面传递到另一个页面

Php 如何在表单之间有效地将价格值从一个页面传递到另一个页面,php,html,forms,Php,Html,Forms,基本上我有4页按这个顺序排列 form1.php form2.php form3.php form4.php 每个页面都包含一个带有Html选择选项的表单,在每个表单的底部都有一个文本视图,显示价格,价格根据您选择的选项而变化,然后在表单底部还有一个下一页按钮 我在这里试图实现的是,一旦我单击“下一步”按钮,文本字段中显示的当前价格将作为基本价格传输到下一个表单,直到用户到达最后一页 是的,我读过关于cookies和会话,以及POST和GET方法,但我不知道如何实现它,也不知道哪种方法更适合处理

基本上我有4页按这个顺序排列

  • form1.php
  • form2.php
  • form3.php
  • form4.php
  • 每个页面都包含一个带有Html选择选项的表单,在每个表单的底部都有一个文本视图,显示价格,价格根据您选择的选项而变化,然后在表单底部还有一个下一页按钮

    我在这里试图实现的是,一旦我单击“下一步”按钮,文本字段中显示的当前价格将作为基本价格传输到下一个表单,直到用户到达最后一页

    是的,我读过关于cookies和会话,以及POST和GET方法,但我不知道如何实现它,也不知道哪种方法更适合处理此类问题

    使用jquery计算价格的第一页html

    var basePrice=0;
    $(“.calculate”).change(函数(){
    新价格=基准价格;
    $('.calculate选项:选中')。每个(函数(){
    newPrice+=$(此).data('price'))
    });
    $(“#项目价格”).html(新价格);
    });
    
    
    选择服务
    机场班车
    选择一个机场
    MM1
    平方毫米
    价格估算:₦0
    
    您可以通过在加载第二个表单之前将数据发送到控制器,将数据存储在本地会话中,这意味着在表单上使用提交侦听器,然后向某种控制器发出AJAX请求。然后,您可以访问表单2中的数据

    这只有在“下一步”按钮的类型为“提交”时才起作用,否则,可以使用
    。单击(function(){})取而代之

    JavaScript PHP控制器 表格2/3/4
    
    £
    

    如果此方法太长,则可以考虑在计算或隐藏输入字段时将价格设为禁用输入字段,并将所有数据都张贴到下一个窗体上,该窗体可以通过<代码> $$POST []/COD>和输入<代码> name =“..”。

    作为索引。

    您可以在加载第二个表单之前将数据发送到控制器,从而将数据存储在本地会话中,这意味着在表单上使用提交侦听器,然后向某种控制器发出AJAX请求。然后,您可以访问表单2中的数据

    这只有在“下一步”按钮的类型为“提交”时才起作用,否则,可以使用
    。单击(function(){})取而代之

    JavaScript PHP控制器 表格2/3/4
    
    £
    

    如果此方法太长,则可以考虑在计算或隐藏输入字段时将价格设为禁用输入字段,并将所有数据都张贴到下一个窗体上,该窗体可以通过<代码> $$POST []/COD>和输入<代码> name =“..”。

    作为索引。

    请注意,
    ??
    空合并运算符仅在PHP 7+@FunkFortyNiner中可用。注意,
    isset($\u POST['price')$_POST['price']:可以使用0
    。@Jaquarh@FunkFortyNiner
    在form2中传递'0',而不是form1
    var\u dump($\u POST)
    中的价格值,并查看它是否包含正确的值,如果不包含,
    console.log($(“\35;项目价格”).html())
    并查看它是否获得了正确的值@drwhostangle,因为
    console.log($('#item price').html())
    for me返回6000@drwho请注意,
    ??
    空合并运算符仅在PHP 7+@FunkFortyNiner中可用,请注意,
    isset($\u POST['price'])$_POST['price']:可以使用0
    。@Jaquarh@FunkFortyNiner
    在form2中传递'0',而不是form1
    var\u dump($\u POST)
    中的价格值,并查看它是否包含正确的值,如果不包含,
    console.log($(“\35;项目价格”).html())
    并查看它是否获得了正确的值@drwhostangle,因为
    console.log($('#item price').html())为我返回6000@Drwho
    
    (function ($) {
        $('form').submit(function() {
            $.post('/some/form/controller', { price: $('#item-price').html() }, function(response) {
                return true;
            });
        });
    })(jQuery);
    
    session_start();
    $_SESSION['price'] = $_POST['price'] ?? 0; # PHP 7+
    
    # Pointed out by @FunkFortyNiner
    $_SESSION['price'] = isset($_POST['price']) ? $_POST['price'] : 0; #PHP 5.6+
    
    <?php session_start(); ?>
    <h1>£<?= $_SESSION['price']; ?></h1>