DaDaBIK
This forum is devoted to the discussion about the software DaDaBIK database front-end
the PHP Database application generator for MySQL, PostgreSQL and SQLite; also available for Wordpress.

Welcome! Log In Create A New Profile

Advanced

Bottone Salva e vai ad altra tabella

Posted by alonzo 
Bottone Salva e vai ad altra tabella
October 05, 2018 04:10AM
Ciao,
avrei bisogno di inserire un bottone a fine inserimento pagina, che mi permetta di salvare e automaticamente aprire una seconda tabella in modalità "inserisci", qual'è la soluzione migliore?



You are using DaDaBIK version 9.0-Monterosso enterprise, installed on 07.07.2018, the latest version of DaDaBIK is 9.1-Monterosso released on 12.09.2018
You are not running the last release of DaDaBIK, the release you are running might have bugs and security holes, see the official change log for further information. You can upgrade DaDaBIK here.
PHP Version: 7.0.31
mysql version: 5.0.92-50-log
Web server: Apache
Client: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Re: Bottone Salva e vai ad altra tabella
October 06, 2018 05:57AM
Ciao,
se devi sempre spostarti in insert su questa seconda tabella dopo il salvataggio la cosa più semplice è inserire un after update hook, che contenga solo il codice per il redirect:

header('location:'.$site_url.$dadabik_main_file.'?tablename='.urlencode('nometuatabella').'&function=show_insert_form');

Ciao,

________________________________________________________
Eugenio |\.-./| DaDaBIK developer and project admin
Re: Bottone Salva e vai ad altra tabella
October 08, 2018 11:22PM
Ho fatto qualche prova ma non sono sicuro di aver capito come collocarlo tra gli Hooks in custom_functions.php
Re: Bottone Salva e vai ad altra tabella
October 09, 2018 01:04AM
E' un hook come gli altri, se la tua tabella si chiama customers sarà qualcosa del tipo

$hooks['customers']['update']['after'] = 'dadabik_change_page';

e la funzione dadabik_change_page conterrà il codice di cui sopra.

________________________________________________________
Eugenio |\.-./| DaDaBIK developer and project admin
Re: Bottone Salva e vai ad altra tabella
October 09, 2018 11:51PM
//-----------------------------------------------------------------
$hooks ['Tab_B-ISPEZIONI'] ['update'] ['after'] = 'dadabik_change_page';
function dadabik_change_page ()
{
header ('location:'.$site_url.$dadabik_main_file.'?tablename='.urlencode('Tab_C-ISPEZIONI').'&function=show_insert_form');
}

....dopo l'inserimento nella tabella B e il salvataggio, non succede nulla e torna alla griglia della tabella B, dove sbaglio?
Re: Bottone Salva e vai ad altra tabella
October 10, 2018 02:45AM
Non mi è chiaro se si tratta di inserimento o di modifica, se si tratta di inserimento sarà:

$hooks ['Tab_B-ISPEZIONI'] ['insert'] ['after']

verifica però che l'inserimento venga in effetti eseguito, perché il COMMIT della transazione viene effettuato dopo l'esecuzione dell'hook.

________________________________________________________
Eugenio |\.-./| DaDaBIK developer and project admin
Re: Bottone Salva e vai ad altra tabella
October 11, 2018 03:18AM
Ho sostituito update con insert.
L'inserimento avviene, ma senza l'effetto voluto.
Re: Bottone Salva e vai ad altra tabella
October 11, 2018 03:32AM
Probabilmente per qualche motivo il codice non viene eseguito. Prova a fare un po' di debugging ad esempio prima dell'istruzione header scrivi

echo 'test';
exit;

Se il codice viene eseguito, dopo l'insert dovrebbe scriverti "test" a video e poi interrompere l'esecuzione dello script (in questo caso il record non viene inserito). Se non succede c'è probabilmente un errore nel nome della tabella (controlla maiuscole/minuscole ad esempio).

________________________________________________________
Eugenio |\.-./| DaDaBIK developer and project admin
Re: Bottone Salva e vai ad altra tabella
October 11, 2018 03:48AM
L'ho inserito e succede quello previsto nel primo caso (scrive "test" a video e poi interrompe l'esecuzione dello script).
Se lo tolgo esegue l'inserimento ma non mi riporta alla tabella C in modalità inserimento.
Re: Bottone Salva e vai ad altra tabella
October 11, 2018 03:59AM
Ok, probabilmente hai disabilitato in php.ini la visualizzazione dei warning e notice, in effetti manca questa riga all'inizio della funzione:

global $site_url, $dadabik_main_file;

che serve per poter utilizzare le due variabili nella riga sotto.

________________________________________________________
Eugenio |\.-./| DaDaBIK developer and project admin
Re: Bottone Salva e vai ad altra tabella
October 11, 2018 11:58PM
Se intendi il file php.ini del server ho trovato solo questo su Aruba:
Re: Bottone Salva e vai ad altra tabella
October 12, 2018 01:17AM
Il parametro a cui faccio riferimento e': error_reporting, ma se stai lavorando sul server del tuo fornitore di hosting e' abbastanza normale che sia impostato per non mostrare warning/notice.
In ogni caso, aggiungendo
global $site_url, $dadabik_main_file;
il problema si è risolto?

________________________________________________________
Eugenio |\.-./| DaDaBIK developer and project admin
Re: Bottone Salva e vai ad altra tabella
October 12, 2018 02:14AM
niente da fare....

//-----------------------------------------------------------------
$hooks ['Tab_B-ISPEZIONI'] ['insert'] ['after'] = 'dadabik_change_page';
function dadabik_change_page ()
{
global $site_url, $dadabik_main_file;
header ('location:'.$site_url.$dadabik_main_file.'?tablename='.urlencode('Tab_C_ISPEZIONI').'&function=show_insert_form');
}
//-----------------------------------------------------------------
Re: Bottone Salva e vai ad altra tabella
October 12, 2018 06:52AM
Allora non saprei, senza vedere gli eventuali errori è difficile fare debugging.

L'ultima prova che farei è sostituire:

header ('location:'.$site_url.$dadabik_main_file.'?tablename='.urlencode('Tab_C_ISPEZIONI').'&function=show_insert_form');

con un semplice:

header('location:http://google.com';);

dovrebbe fare un redirect sulla home di google, giusto per vedere se il problema è con i redirect.

________________________________________________________
Eugenio |\.-./| DaDaBIK developer and project admin
Re: Bottone Salva e vai ad altra tabella
October 13, 2018 10:53AM
in effetti...torna all'inserimento, e non va su google.
E' come se la funzione non esistesse.
Re: Bottone Salva e vai ad altra tabella
October 13, 2018 10:59AM
Mi sembra molto strano, prova a riguardare il comando di redirect su google, mi sono reso conto che il forum aveva trasformato l'ultima parte in una emoticon e non riesco a scriverlo correttamente, in ogni caso: dopo google.com c'è un apice, una parentesi chiusa e un punto e virgola.

E' anche strano che torni all'inserimento, hai $insert_again_after_insert = 1 in config? Si tratta di una tabella in master/details?

________________________________________________________
Eugenio |\.-./| DaDaBIK developer and project admin
Re: Bottone Salva e vai ad altra tabella
October 14, 2018 03:15AM
si l'avevo notata e inserita correttamente

$insert_again_after_insert = 0

E' una normale tabella
Re: Bottone Salva e vai ad altra tabella
October 14, 2018 11:43PM
Mi correggo, dopo l'inserimento torna alla griglia, non su su insert.
Re: Bottone Salva e vai ad altra tabella
October 15, 2018 01:14AM
Se invece prima del redirect su google aggiungi

echo 'test';
exit;

allora scrive "test" e si ferma?

________________________________________________________
Eugenio |\.-./| DaDaBIK developer and project admin
Re: Bottone Salva e vai ad altra tabella
October 15, 2018 01:38AM
esattamente
Re: Bottone Salva e vai ad altra tabella
October 15, 2018 02:12AM
Mi sembra veramente molto strano, un'ulteriore prova che farei è quella di mettere, dopo il redirect di google, una linea

exit();

e di togliere le due righe che hai aggiunto prima del redirect.

Fammi sapere cosa succede in questo caso.

Se non si riesce a capire cosa succede dopo questa ultima prova, l'unico modo è abilitare la visualizzazione degli errori o guardare il log degli errori per vedere se in effetti è stato generato un errore.

________________________________________________________
Eugenio |\.-./| DaDaBIK developer and project admin
Re: Bottone Salva e vai ad altra tabella
October 15, 2018 02:23AM
Mi porta su Google
Re: Bottone Salva e vai ad altra tabella
October 15, 2018 02:24AM
semplicemente togliendo exit() invece NON ti porta su google?

________________________________________________________
Eugenio |\.-./| DaDaBIK developer and project admin
Re: Bottone Salva e vai ad altra tabella
October 15, 2018 10:54AM
no, non mi porta su google, la soluzione è proprio "Exit"!

In questo modo funziona perfettamente:
//-----------------------------------------------------------------
$hooks ['Tab_B-ISPEZIONI'] ['insert'] ['after'] = 'dadabik_change_page';
function dadabik_change_page ()
{
global $site_url, $dadabik_main_file;
header ('location:'.$site_url.$dadabik_main_file.'?tablename='.urlencode('Tab_C_ISPEZIONI').'&function=show_insert_form');
exit();
}

Solo che, se è possibile, come chiesto all'inizio del topic, questa funzione dovrebbe essere legata ad un altro bottone a fondo pagina, o in alternativa, modificare la dicitura sul bottone di salvataggio: "Inserisci un nuovo record >>" con "Salva e passa alla tabella C"
Re: Bottone Salva e vai ad altra tabella
October 16, 2018 01:58AM
Ora ho capito, dopo il redirect l'esecuzione proseguiva e interveniva il redirect successivo (quello di default) che ti riporta alla results grid dopo l'inserimento.

Aggiungere l'exit è corretto ma attenzione che in questo modo il record NON viene inserito (a meno che tu non stia usando MyISAM invece di innodb come storage engine, cosa che ti sconsiglio fortemente). Perché il record venga inserito devi aggiungere dopo il redirect questa istruzione:

complete_trans_db();

che serve ad eseguire il "commit" della transazione (che altrimenti non viene eseguito perché l'istruzione di commit è successiva all'after insert hook e tu esci con exit) .

Creare un nuovo pulsante che fa questo sarebbe un po' complicato: dovresti creare un pulsante con associata una funzione javascript che fa il submit e invia una variabile e poi nell'after insert hook controllare che questa variabile sia impostata per decidere se fare il redirect o meno.

Per cambiare il nome del pulsante invece basta creare (se non c'è già) il file languages/italian_custom.php e aggiungere una cosa tipo

if (isset($table_name) && $table_name === 'Tab_B-ISPEZIONI'){

$submit_buttons_ar['insert'] = 'testo che vuoi';

}

________________________________________________________
Eugenio |\.-./| DaDaBIK developer and project admin
Re: Bottone Salva e vai ad altra tabella
October 16, 2018 11:47AM
Innodb non è presente tra le scelte per la tabella...

Re: Bottone Salva e vai ad altra tabella
October 17, 2018 01:33AM
Non so perché non è abilitato sul tuo server, prova ad informarti, considera anche (al di là del discorso innodb) che stai utilizzando una versione di mysql molto vecchia. MyISAM non è transaction-safe, il che genera problemi: se ad esempio un'operazione in dadabik necessità di più query e ad un certo punto si verifica un errore, le query eseguite fino all'errore hanno effetto (portandoti in una situazione inconsistente) invece di essere annullate.

Da:
https://dadabik.com/index.php?function=show_documentation#requirements

"For MySQL, all the database tables must be InnoDB if you want to correctly handle transactions; DaDaBIK can also work with MyISAM tables but it cannot guarantee that transactions are processed correctly."

________________________________________________________
Eugenio |\.-./| DaDaBIK developer and project admin
Re: Bottone Salva e vai ad altra tabella
October 18, 2018 07:17AM
Ok ti ringrazio.
Ho chiesto al Provider l'aggiornamento alla versione 5.6.41
Sorry, only registered users may post in this forum.

Click here to login