Pagina 1 di 1
Menù dinamico
Inviato: 25 set 2023, 14:09
da magre66
Salve a tutti,
qualcuno ha esperienza con i menù dinamici?
Costruisco un menù dinamico composto da due pulsanti "fissi" e uno che, tramite un ciclo foreach, prende il sottomenù da una query
Il sottomenù si compone correttamente ma non funziona il click. Ho provato anche a creare i pulsanti come primo livello del menù ma niente. Funzionano quelli fissi ma non quelli creati con il ciclo foreach anche facendoli puntare ad una form fissa. Questo il codioce inserto nerll'evento onLoad del menù:
Codice: Seleziona tutto
sc_appmenu_reset("menu_crd");
sc_appmenu_create("menu_crd");
$sql="SELECT
reparti_coord.idrep,
reparti.reparto,
reparti.menu
FROM
reparti INNER JOIN reparti_coord ON reparti.id = reparti_coord.idrep
WHERE
(reparti_coord.iddip = ".[crd].")
ORDER BY
reparti.reparto";
sc_lookup(rp,$sql,"conn_mysql");
sc_appmenu_add_item ('menu_crd', 'item_100',,'Area',,,,,);
foreach ({rp} as $arr_area) {
sc_appmenu_add_item ('menu_crd', 'item _'. $arr_area[0] ,'item_100',$arr_area[1],'menu_ar_'.$arr_area[2],,,,);
}
sc_appmenu_add_item ('menu_crd', 'item_101',,'Modica password','app_change_pswd',,,,);
sc_appmenu_add_item ('menu_crd', 'item_102',,'Esci','app_Login',,,,'_parent');
Grazie
Re: Menù dinamico
Inviato: 25 set 2023, 15:49
da Fabio
Buongiorno,
nel menù, per impostazione predefinita, vengono disabilitati i link alle applicazioni che non esistono o che non sono autorizzate per l'utente.
Forse è per questo che i link non funzionano.
Nelle impostazioni dovrebbe esserci una voce da attivare/disattivare per abilitare i link senza controlloare se esistono.
Re: Menù dinamico
Inviato: 25 set 2023, 19:05
da magre66
Grazie Fabio,
ho trovato l'impostazione ma non è quello, anche perchè non dovrebbero funzionare neanche quelli fuori dal foreach, invece gli atri funzionano.
Temo sia un bug di sc.
Provero a scrivere al supporto
Re: Menù dinamico
Inviato: 26 set 2023, 18:50
da rino
foreach ({rp} as $arr_area) {
sc_appmenu_add_item ('menu_crd',
'item _'. $arr_area[0] ,'item_100',$arr_area[1],'menu_ar_'.$arr_area[2],,,,);
}
non credo possa funzionare , mi pare che il secondo parametro debba avere un nome variabile, tu generi lo stesso nome per ongi elemento
perchè usi una foreach invece che il ciclo di sc usando la macro sc_select? anche se più lungo in temrini di rigeh è meglio descrittivo e lavora meglio in modalità oggetto oltre ad avere un pefetto controllo di accesso
sc_select(my_data, "select clientId, clientName, limitecred from costumers");
if ({my_data} === false)
{
echo "Access error. Message =". {my_data_erro};
}
else
{
while (!{my_data}->EOF)
{
{clientName} = {my_data}->fields[1];
{my_data}->MoveNext();
}
{my_data}->Close();
}
Re: Menù dinamico
Inviato: 27 set 2023, 17:44
da magre66
Grazie Rino e ben ritrovato,
anche utilizzando il tuo metodo il problema non cambia.
Il menù viene regolarmente creato con entrambi i metodi ma le voci non generano effetto al click anche se sono cliccabili.
Ho scritto al supporto di sc e attendo risposta
Mario Greco
Re: Menù dinamico
Inviato: 28 set 2023, 09:36
da rino
Gira
prova questa e ...
$x = 1;
sc_appmenu_create("menu_1");
do {
$item='item_'.$x;
$testo='meniopzione_'.$x;
$app='app'.$x;
sc_appmenu_add_item ('menu_1', $item,,$testo,$app,,,,);
$x++;
} while ($x <= 5);
sc_appmenu_add_item ('menu_1', 'item_101',,'Modica password','app_change_pswd',,,,);
sc_appmenu_add_item ('menu_1', 'item_102',,'Esci','app_Login',,,,'_parent');
Re: Menù dinamico
Inviato: 29 set 2023, 09:36
da rino
il problema è nel fatto che alcune macro SC non accettano la costruzione di variabili nei parametri, è quindi corretto creare sempre delle variaibli localie poi usarle come parametri .
Re: Menù dinamico
Inviato: 02 ott 2023, 15:49
da magre66
GRAZIE!!
Il problema era proprio nella costruzione delle variabili all'interno della macro sc_appmenu_create. Da notare che l'esempio l'ho preso dal sito ufficiale Scriptcase. No comment
Creando le variabili all'interno del ciclo (indipendentemente da quello che si usa) e poi inserendole nella macro, il menù funziona.
Riporto il codice funzionante
Codice: Seleziona tutto
sc_appmenu_reset("menu_crd");
sc_appmenu_create("menu_crd");
$sql="SELECT
reparti_coord.idrep,
reparti.reparto,
reparti.menu
FROM
reparti INNER JOIN reparti_coord ON reparti.id = reparti_coord.idrep
WHERE
(reparti_coord.iddip = ".[crd].")
ORDER BY
reparti.reparto";
sc_lookup(rp,$sql,"conn_mysql");
sc_appmenu_add_item ('menu_crd', 'item_100',,'Area');
$x=1;
foreach ({rp} as $arr_area) {
$item='item_'.$x;
$testo=$arr_area[1];
$dst='menu_ar_'.$arr_area[2];
sc_appmenu_add_item ('menu_crd', $item,'item_100',$testo,$dst);
$x++;
}
Re: Menù dinamico
Inviato: 02 ott 2023, 22:42
da rino
gli esempi non sempre sono allineati all'ultima versioen ed è logico attendersi comportamenti divesi nel tempo.
esistono però delle vecchie abituidni che salvano sempre, in fondo oggi una variabile in più o in men onon fa differenza , una volta (tempi d oro ) facevano differenza anche le if messe all'incontrario.
Certo chi ha esperienza ,specie storica, ne viene fuori più rapidamente ma per questo esistono luoghi di incontro come i forum.
Buon lavoro