Серверная часть yadcf, выбор выпадающего списка и накопительная фильтрация

Выберите DropDown Image Episode 2 Я обновил php-код DataTables для поиска и сбора данных, которые добавляют или уменьшают данные json, используемые yadcf. Как запретить yadcf обновлять этот список значений параметров столбца, если значение уже выбрано для фильтра? При повторном выборе фильтра все предыдущие параметры удаляются, чего я не хочу, если кто-то выбирает неправильный параметр. Я бы использовал ниже, если для предотвращения этого выберите для обновления. Кроме того, кнопка сброса не вариант, который я хочу использовать.

if ( strindex[w] === 3 && GBselBoxphp3 === '' ) {
    var selectoptdata = data.yadcf_data_3;
    select.empty().append('<option value=""/>');

    $.each(selectoptdata, function (i, j) {
        select.append( '<option value="'+j+'">'+j+'</option>' )
    }); 
}   

Эпизод 1 Решение, которое вы получили от Аллана Джардина для заполнения раскрывающегося списка, устранило еще одно препятствие, поэтому я могу внедрить обработку на стороне сервера в свои DataTables, но добавление упомянутых ниже изменений в ssp.class.php ослабило накопительную фильтрацию. Накопительная фильтрация очень полезная функция при сужении выбранной записи. Есть идеи, как это можно исправить?

/questions/18235926/yadcf-datatables-na-storone-servera-zapolnit-vyibor-s-pomoschyu-php

$data=SSP::simple( $_POST, $sql_details, $table, $primaryKey, $columns);

$db = SSP::sql_connect( $sql_details );
$stmt3 = $db->prepare( 'SELECT DISTINCT(value) FROM table' );
$stmt3->execute();
$data['yadcf_data_3'] = $stmt3->fetchAll(PDO::FETCH_COLUMN, 0);

$stmt5 = $db->prepare( 'SELECT DISTINCT(value2) FROM table' );
$stmt5->execute();
$data['yadcf_data_5'] = $stmt5->fetchAll(PDO::FETCH_COLUMN, 0);

$stmt6 = $db->prepare( 'SELECT DISTINCT(value3) FROM table' );
$stmt6->execute();
$data['yadcf_data_6'] = $stmt6->fetchAll(PDO::FETCH_COLUMN, 0);


echo json_encode($data);

Это то, что я сделал с кодом php в столбце 3. Это также принимает значение, введенное в поле поиска из Datatables.

if( !empty($requestData['columns'][3]['search']['value']) ){ 
        $strselBoxphp3 = $requestData['columns'][3]['search']['value']; 
    } else {
        $strselBoxphp3 = ""; 
    }       

    //Column 3 DropDown Data
    $db=SSP::sql_connect( $sql_details );
        if( !empty($strsrchBoxvaluephp) ) {
            $sql  = ' SELECT DISTINCT SVD_Description FROM SVD_Equipment WHERE'; 
            $sql .= ' (SVDid LIKE "%'.$strsrchBoxvaluephp.'%"'; 
            $sql .= ' OR Audit LIKE "%'.$strsrchBoxvaluephp.'%"';
            $sql .= ' OR SVD_Description  LIKE "%'.$strsrchBoxvaluephp.'%"';
            $sql .= ' OR Manufacture LIKE "%'.$strsrchBoxvaluephp.'%"';
            $sql .= ' OR Model LIKE "%'.$strsrchBoxvaluephp.'%"';
            $sql .= ' OR VIN LIKE "%'.$strsrchBoxvaluephp.'%"';
            $sql .= ' OR State LIKE "%'.$strsrchBoxvaluephp.'%"'; 
            $sql .= ' OR License_Plate_Number LIKE "%'.$strsrchBoxvaluephp.'%"'; 
            $sql .= ' OR License_Plate_Expiration_Date LIKE "%'.$strsrchBoxvaluephp.'%"';
            $sql .= ' OR Last_Inspection_Date LIKE "%'.$strsrchBoxvaluephp.'%"';
            $sql .= ' OR Primary_Tech LIKE "%'.$strsrchBoxvaluephp.'%"'; 
            $sql .= ' OR Manager LIKE "%'.$strsrchBoxvaluephp.'%")';
        } else {
            $sql = 'SELECT DISTINCT SVD_Description FROM SVD_Equipment WHERE SVD_Description != ""';
        }                       

        if( !empty($strselBoxphp2) ) { 
            $sql .= ' AND Audit = "'.$strselBoxphp2.'"';
        }
        if( !empty($strselBoxphp4) ) { 
            $sql .= ' AND Manufacture = "'.$strselBoxphp4.'"';
        }       
        if( !empty($strselBoxphp5) ) { 
            $sql .= ' AND Model = "'.$strselBoxphp5.'"';
        }       
        if( !empty($strselBoxphp11) ) { 
            $sql .= ' AND Primary_Tech = "'.$strselBoxphp11.'"';
        }   
        if( !empty($strselBoxphp12) ) { 
            $sql .= ' AND Manager = "'.$strselBoxphp12.'"';
        }   

        $sql .= ' ORDER BY SVD_Description;';
    $stmt3 = $db->prepare($sql);
    $stmt3->execute();
    $data['yadcf_data_3'] = $stmt3->fetchAll(PDO::FETCH_COLUMN, 0);

0 ответов

Другие вопросы по тегам