Как динамически назначить идентификатор запроса любому массиву в PHP.например, $ _SESSION [] или простой массив? - PullRequest
0 голосов
/ 06 октября 2010

Привет, друзья! Я застрял с логикой программы в массиве. В основном то, что я пытаюсь сделать, это то, что У меня есть ссылка «Разблокировать ответ», используйте щелчки по этой ссылке, а затем я получаю идентификатор запроса и разблокирую конкретный ответ. Но у меня есть другие ответы, которые нужно разблокировать. И пользователь снова и снова нажимает на любой ответ, чтобы разблокировать. Но я могу разблокировать только один ответ по той причине, что я получаю только один идентификатор запроса. Я застрял в том, как я могу разблокировать любой ответ без ответа с каждым идентификатором запроса, и разблокированный ответ остался там, а новый также разблокирован.

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 06 октября 2010

Есть несколько способов сделать это.Простейшим было бы иметь массивы сессий $ _SESSION ['locked'] и $ _SESSION ['unlocked'].Всякий раз, когда вы получаете новый идентификатор запроса, добавьте эту запись в $ _SESSION ['unlocked'] и удалите ее из $ _SESSION ['locked'].Затем вы можете просто прочитать любой сеансовый массив, чтобы определить, должен ли ответ отображаться или оставаться скрытым.

Другой способ сделать это будет включать, по сути, ту же логику, но использование таблицы базы данных для отслеживания того, что заблокировано.или разблокирован для каждого пользователя.

Если полный список возможных идентификаторов запросов является статическим, вы даже можете избежать отслеживания ответов, которые заблокированы, и просто сохранить массив сеансов (или таблицу базы данных), для которых разблокированыдля каких пользователей.

Ниже приводится общая идея:

if(isset($_POST['requestid'])){
    $_SESSION['unlocked'][] = $_POST['requestid']
}

foreach($answers AS $answer){
    foreach($_SESSION['unlocked'] AS $requestid){
        if($answer['requestid'] == $requestid){
            //output revealed answer
        } else{
            //output locked answer
        }
    } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...