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