将 jQuery 变量传递给 PHP

Passing jQuery Variables to PHP

本文关键字:PHP jQuery 变量      更新时间:2023-09-26

我有一个我正在处理的订单,当用户选择不同的选项时,我正在使用jQuery实时更新价格。所以,现在,最终的项目成本、包类型等都设置在 jQuery 变量中,我需要将其转换为 PHP 以插入到数据库中。

您可以轻松看到代码:http://jsfiddle.net/cadengrant/uddPA/2/

并实时预览工作代码:http://www.htmlified.com/order-now/

function update_price() {
        var base_cost = base_price;
        var basic_price = base_price;
        var pro_price = base_price;
        jQuery('.packages .selected').each(function(index) {
            base_cost += jQuery(this).data("price");
            basic_price += base_cost;
            pro_price += base_cost + 70;
        });
        jQuery('#markup-pages').each(function(index) {
            var price = Number(jQuery(this).val());
            var packages = jQuery('.packages .selected').data("price");
            var pages = 0;
            jQuery('#packages .selected').each(function(index) {
                if(jQuery(this).hasClass('basic')) {
                    if(packages == 199) {
                        pages = price * 99 - 99;
                    } else if (packages == 189) {
                        pages = price * 94 - 94;
                    } else if (packages == 399) {
                        pages = price * 199 - 199;
                    }
                } else if (jQuery(this).hasClass('pro')) {
                    if(pro_price == 269) {
                        pages = price * 134 - 134;
                    } else if (pro_price == 259) {
                        pages = price * 129 - 129;
                    } else if (pro_price == 469) {
                        pages = price * 234 - 234;
                    }
                }
            });
            base_cost += pages;
            /* Single or plural page text */
            if(price == 1) {
                var markup_pages = "markup page";
            } else {
                var markup_pages = "markup pages";
            }
            jQuery('.markup-pages').text(markup_pages);
        });
        jQuery('#packages .selected').each(function(index) {
            if(jQuery(this).hasClass('pro')) {
                base_cost += 70;
            }
        });
        /* Update Doctype */
        jQuery('input[name=page_doctype]:checked', '#order-form').each(function(index) {
            var basic_doctype_text = "";
            var pro_doctype_text = "";
            if(jQuery(this).hasClass('doctypehtml')) {
                var doctype_text = "W3C Valid HTML5 & CSS3";
            } else if (jQuery(this).hasClass('doctypexhtml')) {
                var doctype_text = "W3C Valid XHTML1 & CSS2";
                basic_doctype_text += " Transitional";
                pro_doctype_text += " Strict";
            }
            jQuery('.doctype-text').html(doctype_text);
            jQuery('.basic-doctype').html(doctype_text + basic_doctype_text);
            jQuery('.pro-doctype').html(doctype_text + pro_doctype_text);
        });
        jQuery('.price').html(base_cost);
        jQuery('.basic-price').html(basic_price);
        jQuery('.pro-price').html(pro_price);
    }

我只需要弄清楚如何将JS部分中的这些变量(doctype文本,基本doctype,pro doctype,base_cost等)传递给我的订单.php表单,以便我可以更新支付的金额,他们选择的包裹类型等。任何帮助将不胜感激。

您的页面中已经有一个表单。我建议您在此表单中创建隐藏的输入,以便与表单一起提交。前任:

<input type="hidden" name="base_cost" value="999">

您可以使用jQuery轻松调整值。将表单提交到 php 页面后,您可以使用以下方法捕获这些值:

$base_cost = $_POST['base_cost'];

但不要忘记清理和验证用户的每一个输入。希望这对我的英语有帮助并原谅。

您正在寻找一种从用户那里分辨服务器信息的方法吗?我的朋友,不发送表单,不使用ajax,将很难:)

如果我正确理解了这个问题,您希望在用户触发某些操作时在客户端更改某些参数。在这种情况下,您可以在页面加载时加载可能的参数,并在用户触发这些操作时,从已加载的参数中获取新参数。然后,当您发送表单时,您将所选参数添加到其中。

希望对您有所帮助!