【问题标题】:PHP unserializing a JS serialized string of variables [duplicate]PHP反序列化一个JS序列化的变量字符串[重复]
【发布时间】:2012-06-19 08:11:46
【问题描述】:

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

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

input1=meeting&input2=select+date&input3=enter+text&input4=NUMBER+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();
    }
});

}

有什么想法吗?

【问题讨论】:

    标签: php javascript jquery serialization


    【解决方案1】:

    你可以使用parse_str:

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

    【讨论】:

    • 这在您通过 AJAX 在 Wordpress 中提交数据时非常有用。
    【解决方案2】:

    我认为parse_str 是您所需要的。

    【讨论】:

      猜你喜欢
      • 2020-08-04
      • 2015-11-26
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 2014-07-14
      • 1970-01-01
      • 2012-05-10
      相关资源
      最近更新 更多