Выберите элемент списка, не удаляя из базы данных - PullRequest
0 голосов
/ 04 декабря 2018

В настоящее время у меня есть поле множественного выбора, которое функционирует должным образом, пока не будет последний элемент, который не удаляется из базы данных при отмене выбора.По какой-то причине все, кроме 1 предмета удалены.

$domain_records = $DB->get_records('tag', ['tagtype' => 'domain'], $sort = 'rawname', '*');

if(!empty($_POST["domain_list"]) || isset($_POST["domain_list"])){
$posted_domains = array();
$posted_domains = $_POST["domain_list"];
 // elseif logic submits newly selected tags

 foreach($domain_records as $domain_record) {
     // already selected and still selected
     if(in_array($domain_record->id, $posted_domains) === true && 
        $DB->record_exists('tcors_journal_tags_matrix', array('journal_publication_id' => $pubid, 'tag_id' => $domain_record->id))) {
             continue;
     }
     // selected and no longer selected on post
     else if(in_array($domain_record->id, $posted_domains) === false && 
        $DB->record_exists('tcors_journal_tags_matrix', array('journal_publication_id' => $pubid, 'tag_id' => $domain_record->id))) {
         // DELETE ME!!!!
         $DB->delete_records("tcors_journal_tags_matrix", array('journal_publication_id' => $pubid, 'tag_id' => $domain_record->id));
     }
     else if(empty($posted_domains)){
        $DB->delete_records("tcors_journal_tags_matrix", array('journal_publication_id' => $pubid, 'tag_domain' => "Domain"));
        //$DB->delete_records("tcors_journal_tags_matrix", array('journal_publication_id' => $pubid, 'tag_id' => $domain_record->id));

     }
     else if(in_array($domain_record->id, $posted_domains) === true) {
         $tag_matrix = new \stdClass();
         $tag_matrix->journal_publication_id = $pubid;
         $tag_matrix->tag_id = $domain_record->id;
         $tag_matrix->tag_domain = 'Domain';

         $tag_matrix->create_date = time();
         $tag_matrix->create_by = $USER->id;
         $tag_matrix->modify_date = time();
         $tag_matrix->modify_by = $USER->id;

         $DB->insert_record('tcors_journal_tags_matrix', $tag_matrix);

     }

 }

}

Моя попытка учесть сценарий, в котором массив $ posts_domains (который содержит значения, подлежащие отправке в БД) является вторым, последним оператором else if.Я хотел бы, чтобы все элементы были удалены, когда массив обратной записи ($ posts_domains) не содержит значений.

...