Custom Buttons - multiple choice

alessapan

Member
DaDaBIK version 10.3-Manarola enterprise, installed on 27/08/2020 ), the latest version of DaDaBIK is 10.3-Manarola released on 26/08/2020

System info
PHP Version: 7.2.33
mysql version: 5.7.29-32-log
Web server: Apache
Client: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36

Ciao,
vorrei sapere come riadattare il codice per effettuare un azione di UPDATE sullo status di record selezionati tramite i checkbox oppure TUTTI per un passaggio di status di tutti i record.
Il codice usato per il singolo record è il seguente:
// CUSTOM BUTTONS
//View cedole inserite - result grid
$cnt = 0;
$custom_buttons['cedole_inserite'][$cnt]['type'] = 'php_standard';
$custom_buttons['cedole_inserite'][$cnt]['callback_function'] = 'dadabik_change_status_cedole';
$custom_buttons['cedole_inserite'][$cnt]['permission_needed'] = 'custom_function';
$custom_buttons['cedole_inserite'][$cnt]['permission_custom_function'] = 'dadabik_permission_change_status';
$custom_buttons['cedole_inserite'][$cnt]['show_in'][] = 'results_grid';
$custom_buttons['cedole_inserite'][$cnt]['position_form'] = 'row';
$custom_buttons['cedole_inserite'][$cnt]['label_type'] = 'fixed';
$custom_buttons['cedole_inserite'][$cnt]['label'] = 'Richiedi';
$custom_buttons['cedole_inserite'][$cnt]['confirmation_message'] = 'Vuoi procedere con la richiesta?';
$custom_buttons['cedole_inserite'][$cnt]['style'] = 'background:#FF0000;width:100px';
$cnt++;

// di seguito le funzioni per modificare la singola voce
// funcion per la view cedole
function dadabik_change_status_cedole($table_name, $where_field, $where_value)
{
global $conn, $dadabik_main_file, $quote;

$sql = "UPDATE dirigenti_cedole set Status = 2 WHERE ".$quote.$where_field.$quote." = :where_value";

$res_prepare = prepare_db($conn, $sql);

$values_to_bind = array();

$values_to_bind['where_value'] = $where_value;

foreach ($values_to_bind as $key => $value)
{
$res_bind = bind_param_db($res_prepare, ':'.$key, $value);
}

$res = execute_prepared_db($res_prepare,0);

header('Location:'.$dadabik_main_file.'?function=search&tablename='.urlencode($table_name));

exit;
}

//funcion generica per il livello degli user groups
function dadabik_permission_change_status($table_name, $where_field, $where_value)
{
global $current_id_group;

if ($current_id_group === '2'){
return true;
}
else{
return false;
}
}

ho visto nel manuale il seguente codice per i checkbox ma non so come poterlo adattare:
$_SESSION['checked_ids'][TABLENAME]

foreach ($_SESSION['checked_ids']['customers'] as $key => $value){
echo 'id of the selected element: '.$key;
}


Eventualmente mi basterebbe trasformare tutti i record in Status=1 in =2.......ma avere la possibilità di selezionarli sarebbe un'ottima soluzione per altre Form che devo gestire.

Grazie

Alessandro
 
Top