РЕШЕНИЕ:
Как показывает var_dump, котировки поменялись местами с помощью ascii (?)
'emails2bsent' => string '["email1@gmail.com","email2@gmail.com"]'
Запуск preg_replaceи принудительное возвращение их к обычным кавычкам решило проблему:
$_POST = preg_replace("/"/", "\"", $_POST);
$json = $_POST['emails2bsent'];
var_dump(json_decode($json));
var_dump(json_decode($json, true));
Вывод:
array (size=2)
0 => string 'email1@gmail.com' (length=23)
1 => string 'email2@gmail.com' (length=23)
array (size=2)
0 => string 'email1@gmail.com' (length=23)
1 => string 'email2@gmail.com' (length=23)
Актуальная проблема:
json_decode для скрытого значения POST.
Я отправляю массив писем через скрытое поле формы:
<input name="emails2bsent" type="hidden" value='<?php echo json_encode($emails2bsent)?>' />
, а затем при попытке вернуть массив:
$emails2bsent = json_decode($_POST['emails2bsent'], true);
или
$emails2bsent = json_decode($_POST['emails2bsent']);
ничего не возвращает.Что я делаю не так?
РЕДАКТИРОВАТЬ:
Вывод print_r на странице назначения показывает следующее:
Array
(
[reminder] => Some copy goes here,
[button] => Send
[go3] => three
[reminder_ID] => 198
[emails2bsent] => ["email1@gmail.com","email2@gmail.com"]
)
Когда яхочу получить доступ $ _ POST ['emails2bsent']
echo($_POST['emails2bsent']);
Я тоже могу это сделать.Это просто не может быть декодировано.Я застрял на этом, потому что я хочу понять, почему это не работает.Я бы запрограммировал это давным-давно, но я просто не могу отпустить это, не зная, почему это не работает ..
Могу ли я знать, ПОЧЕМУ я получил два минус голоса?Для вопросов?
Re: ADyson
Поле ввода моей формы перед отправкой:
<input name="emails2bsent" type="hidden" value="["email1@gmail.com","email2@gmail.com"]">
Код Iиспользуйте для просмотра переданных данных:
pre($_POST);
echo($_POST['emails2bsent']);
$out = json_decode($_POST['emails2bsent'], true);
echo '<br>out: ' . $out;
Вывод на страницу:
Array
(
[reminder] => The copy
[button] => send
[go3] => three
[reminder_ID] => 198
[emails2bsent] => ["email1@gmail.com","email2@gmail.com"]
)
["email1@gmail.com","email2@gmail.com"]
out: