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