如何返回自定义表单字段的值

时间:2016-11-03 01:39:24

标签: javascript json

这是我的代码:

<script src="https://sdk.paylike.io/3.js"></script>
<script>
    var paylike = Paylike('***');
    document.querySelector('button').addEventListener('click', pay);

    function pay(){
        paylike.popup({
            // locale: 'da',  // pin popup to a locale
            title: 'Product',
            description: '<?php echo $amount; ?>',
            currency: 'GBP',
            amount: <?php echo $price; ?>,
            // saved on transaction for retrieval from dashboard or API
            custom: {
                // arrays are fine
                products: [
                    // nested objects will do
                ],
            },
            // data from fields will be merged with custom
            fields: [
                // elaborate custom field
            {
                    name: 'name',
                    type: 'name',
                    placeholder: 'John Doe',
                    required: true,
                },

                {
                    name: 'email',
                    type: 'email',
                    placeholder: 'john@example.com',
                    required: true,
                },

                {
                    name: 'address',
                    type: 'address',
                placeholder: 'Address',
                    required: true,
                },
                {
                    name: 'postcode',
                    type: 'postcode',
                    placeholder: 'Postcode',

                    required: true,
                },

            ],
        }, function( err, res ){
            if (err)
                return console.log(err);
            console.log(res);



              location.href = 'success.php?e=' + email;
        });
    }
</script>

我希望能够以此弹出窗体形式提交电子邮件,以便将其附加到成功网址,从而发送电子邮件收据。但是,我这样做的尝试似乎没有起作用。

以下是控制台的输出:

Object
custom: Object
address: "116"
email: "test@gmail.com"
name: "John Doe"
postcode: "E9 7SR"
transaction: Object
id: "581b23717cb2057463e8d76a"

如何退回电子邮件对象?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我不知道你正在使用的Paylike JS库,但似乎你在res对象中有它:期待诸如res.email,{{1或类似的东西。

如果您查看console.log,您可以使用谷歌浏览器的res.fields.email命令(允许您浏览控制台记录的对象),您应该能够看到它的位置。

答案 1 :(得分:0)

尝试:

res.custom.email

转化为:

location.href = 'success.php?e=' + res.custom.email;

我认为你应该使用encodeURIComponent来逃避这个价值。电子邮件可能不是网址的问题,但我认为这是一个好习惯:

location.href = 'success.php?e=' + encodeURIComponent(res.custom.email);

下次遇到类似问题时,请尝试在代码中添加debugger;(断点)(在此示例中,在}, function( err, res ){之后),在Google Chrome中启动开发人员工具,重新加载,然后脚本将运行但在断点处停止,允许您在该确切点检查变量及其值。