簡體   English   中英

序列化表格數據並將其反序列化為關聯數組

[英]serialize the data of a form and deserialize it into an associative array

當我使用$('#myForm').serialize()發布表單的所有字段時(僅包含許多單選按鈕組),我得到了這樣的POST數據:

radio1=blue&radio2=red&radio3=white

但是我不知道如何在PHP中對其進行解碼(反序列化)以獲得這樣的關聯數組:

$myArray = array("radio1"=>"blue", "radio2"=>"red", "radio3"=>"white");

編輯:這是html代碼:

for( $i=1; $i<=$unknownNumber; $i++ ){

   echo("<input type=\"radio\" name=\""."radio".$i."\" value=\"blue\" checked>");
   echo("<input type=\"radio\" name=\""."radio".$i."\" value=\"red\">");
   echo("<input type=\"radio\" name=\""."radio".$i."\" value=\"white\">");
}

下面是js代碼:

$(document).ready(function() {

    $('input[name^="radio"]').on('click', function() {
        $.post( "process.php", $("#myForm").serialize(), function(data){
            alert('Good');
        });
    });
});

您可以在php中使用parse_str函數:

 $arr = array();
 parse_str('radio1=blue&radio2=red&radio3=white',$arr);
var_dump($arr);

PHP parse_str函數

您不需要(反序列化)在php中使用$_POST['radio1'] (It contains the value 'blue')

$_POST type array()包含Ajax發送或提交的所有發布數據

parse_str('radio1=blue&radio2=red&radio3=white',$postdata);

var_dump($postdata);

輸出:

array(3) {
  ["radio1"]=>
  string(4) "blue"
  ["radio2"]=>
  string(3) "red"
  ["radio3"]=>
  string(5) "white"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM