首頁>Web>source

我使用序列發送php陣列,但响應不同.這是我的尝試

$array = serialize($out);
var_dump(serialize($array));
//string(58) "s:50:"a:2:{s:9:"sidebar-1";i:5;s:12:"footer-insta";i:2;}";"

我發送此值的方式,

echo '<div data-ad = '.$array.' class="ash_loadmore"><span>LOAD MORE</span></div>';

当我使用ajax發送序列化值時,ajax响應给我的值,

string(54) "a:2:{s:9:\"sidebar-1\";i:5;s:12:\"footer-insta\";i:2;}"

我需要確切的值,因為我再次取消序列化以使其成為陣列.為什麼有額外的 \   和輸出是不同的.

最新回復
  • 2019-9-16
    1 #

    似乎@JacobPeattie提到使用json,我只是迴應那个.

    首先json編碼變數 $array = json_encode($out);

    然後發送此值 echo '<div data-ad = '.$array.' class="ash_loadmore"><span>LOAD MORE</span></div>';

    得到那个 echo json_encode($_POST['ad'])

    我认為就是這樣.BTw你現在没有那个字元串問题,因為輸出就像這个 {"footer-insta":2,"sidebar-1":3}   你看它被 {}包裹着

  • 2019-9-16
    2 #

    嗯,這个 \   正在加入以逃避 " .例如,您儲存整个字元串 "sidebar-1" .請註意该字元串包含打開 "   並關闭 " .現在這个字元串也被另一个 ""包裹着 ,所以分開開口 "   關闭 "   儲存的字元串,它添加了一个 \   逃避它.這樣它就可以隱藏解析 ""   將儲存的字元串作為實際引用。

  • 2019-9-16
    3 #

    最簡單且問题最少的解決方案:

    $array = json_encode($out);
    var_dump(array); // string "{\"sidebar-1\":5,\"footer-insta\":2}"
    

    在JS中你可以使用:

     JSON.parse( "{\" 侧欄-1 \ ":5,\" 頁脚-斯塔\ ":2}")
    

    你有資料物件

  • drupal:問题更改語言 - 重定向到安裝
  • wordpress:以CSV格式匯出wordPress帖子和元資訊