Как json_decode, используя цикл foreach? - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь проанализировать отправленный в форме скрытый входной текст с помощью цикла foreach.

<input type="hidden" id="snippet_tags" name="snippet_tags[]" value="["88","92","96","98"]">

Получите это с помощью следующей функции

$snippet_tags = json_decode($_POST['snippet_tags'], true);

и проанализируйте значения с помощью цикла foreach

foreach ($snippet_tags as $selectedOption){

                        $ins_snippet_tag_data = array(
                            'snippet_id' => $insertDataReturnLastId,
                            'tag_id' => $selectedOption,
                            'priority' => 1,

                        );

                 $this->Constant_model->insertDataReturnLastId('snippets_tags', $ins_snippet_tag_data);

                }

Здесь проблема в том, что значения tag_id не сохраняются в базе данных

1 Ответ

1 голос
/ 21 сентября 2019

Вы не можете использовать одни и те же кавычки для разделения значения и строк внутри него.Вы должны использовать одинарные кавычки вокруг значения.

<input type="hidden" id="snippet_tags" name="snippet_tags[]" value='["88","92","96","98"]'>

То, как вы это написали, обрабатывается так, как если бы вы написали value="[", а все остальное игнорируется.

Кроме того,так как у вас есть [] после имени, $_POST['snippet_tags'] будет массивом, поэтому вам нужно зациклить его.

foreach ($_POST['snippet_tags'] as $json) {
    $snippet_tags = json_decode($json, true);
    foreach ($snippet_tags as $selectedOption){
        $ins_snippet_tag_data = array(
            'snippet_id' => $insertDataReturnLastId,
            'tag_id' => $selectedOption,
            'priority' => 1,
        );
        $this->Constant_model->insertDataReturnLastId('snippets_tags', $ins_snippet_tag_data);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...