无法访问PHP中的参数,使用Serialize从jQuery发布值

时间:2015-03-10 19:41:29

标签: javascript php jquery ajax wordpress

我通过AJAX Post从jquery发送数据,所有表单字段都是序列化的(在WordPress中)。

$('#SendEmail').click(function () {
    jQuery.post(
        the_ajax_script.ajaxurl,
        {
            'action': 'the_ajax_hook_SendEmailWithCalculatorContent',
            'calculatorFormContent': $("#CalculatorForm input").serialize()
        },
        function (response_from_the_action_function) {
            $("#G1").val(response_from_the_action_function);                
        }
    );
});

以下是来自firebug POST的帖子参数:

action  the_ajax_hook_SendEmailWithCalculatorContent
calculatorFormContent   ZIPCodeTextBox=01915&G1=PhoneNumber+%3A++ZipCode+%3A+&G2=&G3=&G4=&G5=&G6=&G7=&G8=&G9=&G10=&G11=&G12=&G13=&G14=&G15=&G16=&G17=&G18=&G19=&G20=&G21=&G22=&G23=&G24=&G25=&G26=&G27=&fullname=&email=&phone=7324211531

当我尝试访问这些参数时,需要在PHP中访问这些参数

echo "PhoneNumber : ".$_POST['phone']." ZipCode : ".$_POST['ZIPCodeTextBox']."     IndexValue : ".$_POST['0'];

我得到输出为“PhoneNumber:ZipCode:IndexValue:”,因此所有表单数据都是空白。

当我尝试:

echo $_POST;

我看到价值“数组”遇到了。 如何访问数组值?

通过使用参数名称在这里看到多个帖子,可以从$ _POST ['name']获取数据。 (相似链接:jQuery AJAX form data serialize using PHP) 但显然它不适用于我的情况。

1 个答案:

答案 0 :(得分:0)

如果'calculatorFormContent': JSON.stringify($("#CalculatorForm input").serializeArray())然后在PHP脚本中使用$array = json_decode($_POST['calculatorFormContent'], true);

稍后使用$array['phone']访问它。