2012-06-16 71 views
13

當用戶點擊'generate'元素時,我有以下代碼,表單'serializeData'中的數據在js中序列化。這個字符串被傳遞給loadTemplate函數,該函數依次將該字符串與其他變量POST到一個用於處理的php腳本。PHP反序列化一個JS序列化的變量字符串

我正在尋找的是反序列化在PHP中的JS字符串或最佳實踐在數據獲取的方式,這裏是serilized數據的輸出例如在PHP看作是一個字符串: -

INPUT1 =會議&輸入2 =選擇+日期&輸入3 =輸入+文本& INPUT4 = NUM​​BER + MISSING

序列化格式的數據被傳遞在用戶數據變量中的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(); 
    } 
}); 

} 

有什麼想法?

回答

35

您可以使用parse_str

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

輝煌得益於兩個,給這個答案,因爲它給了多一點的答案。多謝你們。 – KryptoniteDove

4

我認爲parse_str是你所需要的。