PHP反序列化JS序列化变量字符串

Kry*_*ove 17 javascript php jquery serialization

当用户点击'generate'元素时,我有以下代码,'serializeData'形式的数据在js中被序列化.这个字符串被传递给loadTemplate函数,而loadTemplate函数又将带有其他变量的字符串POST到php脚本进行处理.

我正在寻找的是一种在PHP中反序列化js字符串的方法或获取数据的最佳实践,这里是一个示例输出的服务数据,如PHP中的字符串所示: -

输入1 =会议和输入2 =选择+日期和输入3 =输入+文字和输入4 = NUM​​BER + MISSING

序列化的表单数据在userData变量的loadTemplate函数中传递给PHP.

功能: -

$("#generate").click(function () {
    if (eCheck == true) {

        var templateData = $("#serializeData").serialize();
        var templateID = $("#serializeData").attr("name");  

            loadTemplate(this, templateID, 3, templateData)         
    }
    return false;
});


function loadTemplate(obj, cat, call, userData) {
userData = typeof userData !== "undefined" ? userData : null; // Set userData to null if undefined.
var onSuccess = "#right";

if (call == 1) {
    onSuccess = "#left";
        switchButton(obj);
            $("#content").hide();
            $("#right-content").text("");
} 

 $("#loading").show();

$.ajax({
    type: "POST",
    url: "./scripts/load.php",
    data: { id : cat, call: call, userData: userData },
    cache: false,
      success: function(html){
        $(onSuccess + "-content").html(html);

        if (onSuccess == "#left") {
          $("#content").fadeIn(500);
        } 
            $("#loading").fadeOut(500);
            resizeAll();
    }
});

}
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

Emi*_*röm 44

你可以使用parse_str:

$values = array();
parse_str($_POST['userData'], $values);
echo $values['input1']; //Outputs 'meeting'
Run Code Online (Sandbox Code Playgroud)


Aga*_*res 5

我想parse_str这就是你所需要的。