J'envoie un tableau php en utilisant serialise mais la réponse est différente. Voici ma tentative
$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;}";"
La façon dont j'envoie cette valeur,
echo '<div data-ad = '.$array.' class="ash_loadmore"><span>LOAD MORE</span></div>';
Comme j'envoie la valeur sérialisée en utilisant ajax, la valeur que me donne la réponse ajax,
string(54) "a:2:{s:9:\"sidebar-1\";i:5;s:12:\"footer-insta\";i:2;}"
J'ai besoin de la valeur exacte car j'ai à nouveau désérialiser pour en faire un tableau. Pourquoi il y a \
supplémentaire et la sortie est différente.
Eh bien, il semble que @JacobPeattie ait mentionné l’utilisation de json, je ne fais que le répéter.
Premier json encoder la variable $array = json_encode($out);
Puis envoyez cette valeur echo '<div data-ad = '.$array.' class="ash_loadmore"><span>LOAD MORE</span></div>';
Pour obtenir cette echo json_encode($_POST['ad'])
Je pense que c'est ça.BTW vous n'avez pas maintenant ce problème de chaîne car la sortie sera comme ceci {"footer-insta":2,"sidebar-1":3}
vous voyez qu'il est enveloppé par {}
Eh bien, ce \
est ajouté pour échapper au "
. Par exemple, vous stockez la chaîne entière "sidebar-1"
. Notez que la chaîne contient "
ouvrant ainsi que "
fermant. Maintenant, la chaîne est également entourée d'un autre ""
. Par conséquent, pour séparer les "
d'ouverture et "
de la chaîne stockée, il faut ajouter un \
pour l'échapper. De cette façon, le formulaire masqué analyse le ""
de la chaîne stockée en tant que citation réelle.
La solution la plus simple et la moins problématique:
$array = json_encode($out);
var_dump(array); // string "{\"sidebar-1\":5,\"footer-insta\":2}"
Dans JS, vous pouvez utiliser:
JSON.parse ("{\" sidebar-1\": 5, \" footer-insta\": 2}")
et vous avez objet avec des données