将jQuery变量传递给PHP

时间:2013-09-11 03:53:03

标签: php javascript jquery ajax

我有一个我正在处理的订单,当我用户选择不同的选项时,我正在使用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等等)传递给我的order.php表单,这样我就可以更新已支付的金额,包类型他们选择了等等。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

您的页面中已有表单。我建议您在此表单中创建隐藏的输入以与表单一起提交。例如:

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

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

$base_cost = $_POST['base_cost'];

但不要忘记清理并验证用户的每个输入。 希望这有助于我的英语。

答案 1 :(得分:-1)

您正在寻找一种方法来告知用户的服务器信息?我的朋友,没有发送表格而没有使用ajax,将很难:)

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

希望它有所帮助!