Показать сообщение отдельно
  #4 (permalink)  
Старый 15.10.2015, 20:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Начать с того, что на сервере результатом такого именования полей:

<input type="text" name="name" id="firstOption" value="" >
....
<input type="text" name="name" id="fifthOption" value="">

будет получено одно единственное значение - значение последнего поля. Для того чтобы получить все и под одним именем, это имя должно отражать массив:

<input type="text" name="name[1][1]" id="firstOption" value="" >
....
<input type="text" name="name[1][5]" id="fifthOption" value="">

Здесь каждому полю принудительно заданы индексы массива соответствующие ключам вопросов, а первичный ключ равен блоку вопросов (иначе можно было бы так name[]). Тогда получив поля формы "отредактировать" массив будет просто:

if(isset($_POST["name"])) {
    $k = key($_POST['name']);
    array_replace($question[$k]['answer'], $_POST['name'][$k]);
}


А что дальше? Если этот массив нужен на время сессии, то можно его хранить в сессии, но зачем тогда его править? Если же это "база" задач, значит хранить нужно в файле, а еще лучше в базе. Если в файле, то в JSON формате, но учитывать, что функции JSON работают только с utf.

Так что ваш скрипт вряд ли должен начинаться с "есть массив заданий". Сперва надо это сделать, а уж затем чтобы "вылазило". )

PS. Идентификаторы в данном случае совсем не нужны, их используют по потребности, а не потому, что так положено.

Последний раз редактировалось laimas, 15.10.2015 в 20:10.
Ответить с цитированием