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

PHP unserializing a JS serialized string of variables

本文关键字:变量 字符串 序列化 反序列化 JS PHP      更新时间:2023-09-26

当用户在"生成"元素中单击"serializeData"形式的数据在js中序列化时,我有以下代码。此字符串被传递给 loadTemplate 函数,该函数又将该字符串与其他变量一起传递给 php 脚本进行处理。

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

输入1=会议&输入2=选择+日期&输入3=输入+文本&输入4=数字+缺失

序列化的表单数据在 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();
    }
});
}

有什么想法吗?

您可以使用

parse_str:

$values = array();
parse_str($_POST['userData'], $values);
echo $values['input1']; //Outputs 'meeting'

我认为parse_str是你需要的。