Applicazione gestionale php mysql, cercasi consigli

Dunque, tanti anni fa quando ancora non sapevo lavorare nel web... no è un'altra storia, scusate.

Tanti anni fa, + o - 1997/1998 feci un piccolo gestionale con access per gli zii dell'attuale mia moglie, pian piano è cresciuto ma access è sempre stato sufficiente, nessun problema, ha sempre funzionato a meraviglia, ed ovviamente era fatto ad hoc per le esigenze.

Ora sopraggiunte esigenze (multiutenza, accessibilità dell'applicativo ovunque, ecc. ecc.) mi costringono a riscrivere il tutto e stavo pensando appunto a LAMP e di utilizzare questo nuovo metodo per l'interfaccia utente, di cui si sente molto parlare, AJAX.

La struttura del db, per semplificare il passaggio rimane la stessa e sinceramente non penso ce ne sia una migliore al momento.

Ci sarebbe da aggiungere la tabella per gli utenti con i relativi permessi, ma anche qui è una cosa semplice (devo prima però vedere che tipo di permessi vogliono impostare).

A questo punto però entrate in gioco voi, ajax è davvero utile per l'interfaccia utente? questo perchè dovrebbe mantenere le stesse comodità dell'applicativo access, come ad esempio l'autocompletamento delle caselle a tendina, avete presente? O per lo scorrimento dei record (qua ci sarebbe qualche trucco da fare, ma ci penserò).

Mi sono già letto molto in merito ad ajax, anche se molti esempi sono assolutamente stupidi, la maggior parte degi script di autocompletamento non rispettano esattamente la cosa ( se scrivo "p" propongono pippo, pluto, paperino e topolino! ).

Il "problema" maggiore sarebbe la compatibilità IE/FF/Opera/ecc su cui non ho trovato molto ma che potrei ovviare consigliando ("altrimenti non funziona" :D ) firefox ( lo adoro si capisce? )

Insomma esprimetevi più che potete, consigliate, ecc. torno + tardi!

Grazie a tutti.

inviato 10 anni fa
LonelyWolf
X 0 X

Sull'accessibilità sbagli, l'applicativo deve funzionare su tutti i browser, purtroppo al momento Opera è quello che da più problemi con Ajax, però tra i tre big è sicuramente il meno usato.

Per il resto sicuramente Ajax ti aiuterà a gestire l'interfaccia utente ma sarà difficile da implementare se sei alle primissime armi, vedi se i 'patiti' di Ajax ti daranno una mano, io penso di sì, tu che dici? :D

risposto 10 anni fa
Marco Grazia
X 0 X

Penso anche io che una mano non me la negheranno, le comunità sono belle proprio per questo: io aiuto te tu aiuti me!

Per la compatibilità sono d'accordo con te che deve essere con tutti i browser, ma se dovessi implementarla fin dall'inizio non potrei farcela nei tempi, il 1° gennaio è alle porte e cambiare durante l'anno è si fattibile ma sconsigliabile.

Inizialmente cmq a usarlo saranno solo loro, i titolari quindi non dovrebbero esserci problemi finchè non decideranno di aprire le porte anche ai clienti e lì che non si sa cosa succederà (e nemmeno quando, ma sicuramente dovrà passare del tempo).

Mi è appena tornato in mente che sicuramente ci sarà un mac, che browser c'è sul mac? e come si comporta con ajax?

risposto 10 anni fa
LonelyWolf
X 0 X

Sul Mac c'è sicuramente l'ottimo Safari che però non so come si comporta con ajax, in ogni caso c'è sicuramente la possibilità di installare Firefox.

Per la compatibilità invece ti consiglio di pensarci fin dall'inizio, non è un problema di codice ma solo di pensiero :D poco codice in più oggi ti facilita la vita domani.

risposto 10 anni fa
Marco Grazia
X 0 X

Pensarci prima ci ho pensato, infatti questioni come rilevazione del browser et similia saranno implementate da subito, penso di mettere un messaggio del tipo "la corretta funzionalità non è garantita" quando non si usa firefox e di mettere tutte le funzioni che possono avere problema di compatibilità in file esterni comuni a tutte le pagine in cui servono, in modo da limitare gli interventi successivi.

Mi presenti qualche patito di ajax?

risposto 10 anni fa
LonelyWolf
X 0 X

Un patito di Ajax? Cerca in questo forum, c'è stata un'accesa discussione sull'argomento  :crazy:

risposto 10 anni fa
Marco Grazia
X 0 X

Io non mi ritengo un patito di AJAX, tant'è che non ti consiglio di usarlo per qualcosa di serio, almeno non prima di aver macinato ore e ore di esperienza.

Inoltre, visto che fioriscono a vista d'occhio i framework AJAX, ti consiglio di dare un'occhiata a tutto ciò che gira su internet. Ci sono diversi progetti molto interessanti, alcuni anche orientati a PHP.

E' inutile preoccuparsi della corretta gestione dei browser quando il problema è stato già risolto da qualcunaltro.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Si ho dato un'occiata in giro e ormai quasi tutti hanno "risolto" il problema di compatibilità, almeno con ie e ff.

Io pensavo di utilizzare ajax per l'interfaccia grafica in modo da mantenere certe comodità che hanno attualmente, ma potrei benissimo farne a meno.

Grazie a tutti.

risposto 10 anni fa
LonelyWolf
X 0 X

Ma guarda, a parte che non conosco il progetto di cui parli, ma comunque ho visto che durante la digitazione, una accortezza che Ajax mi da, facilitandomi la vita, è la casellina a discesa con un elenco di nomi da inserire, a parte che è una cosa che si può fare anche in PHP, con le limitazioni di una fase sincrona del Web (spiego dopo), per il resto non penso ti serva altro in questo momento.

Fase sincrona: il Web ha un funzionamento sincrono, tu chiedi e il server risponde, ma il server non chiede mai in anticipo, questo crea dei problemi a gestire interfacce complesse.

Per esempio il caso da me esposto dell'elenco a discesa con le parole più comuni da inserire in un campo di immissioni dati, con il PHP (ma anche ASP, JSP, Coldfusion o altro) si risolve in questo modo: tu scrivi una parola, invii al server, quello ti risponde con un elenco di nomi (vedi il caso di suggerimento in fase si iscrizione ad un servizio di email).

Ajax, permette una fase asincrona dell'invio delle informazioni, ovvero quando digiti qualcosa invia le informazioni al server e questo risponde, senza dover aggiornare la pagina.

Non è vero che non lo fa, la pagina viene aggiornata sempre, ma tramite il DOM, ovvero attraverso meccanismi in grado di far apparire testo, la dove prima non ce n'era, ma senza l'apparente aggiornamento della pagina.

Tutto ciò si traduce in un sistema più fruibile per l'utente, che non deve aspettare il refresh dal server (immagina connessioni lente) e gli appare un sistema più fluido e comodo all'utilizzo.

Negatività: più codice, pagine molto più pesanti, difficoltà a gestire utenti con disabilità visive.

risposto 10 anni fa
Marco Grazia
X 0 X

Ma guarda, a parte che non conosco il progetto di cui parli, ma comunque ho visto che durante la digitazione, una accortezza che Ajax mi da, facilitandomi la vita, è la casellina a discesa con un elenco di nomi da inserire, a parte che è una cosa che si può fare anche in PHP, con le limitazioni di una fase sincrona del Web (spiego dopo), per il resto non penso ti serva altro in questo momento.

Fase sincrona: il Web ha un funzionamento sincrono, tu chiedi e il server risponde, ma il server non chiede mai in anticipo, questo crea dei problemi a gestire interfacce complesse.

Per esempio il caso da me esposto dell'elenco a discesa con le parole più comuni da inserire in un campo di immissioni dati, con il PHP (ma anche ASP, JSP, Coldfusion o altro) si risolve in questo modo: tu scrivi una parola, invii al server, quello ti risponde con un elenco di nomi (vedi il caso di suggerimento in fase si iscrizione ad un servizio di email).

Ajax, permette una fase asincrona dell'invio delle informazioni, ovvero quando digiti qualcosa invia le informazioni al server e questo risponde, senza dover aggiornare la pagina.

Non è vero che non lo fa, la pagina viene aggiornata sempre, ma tramite il DOM, ovvero attraverso meccanismi in grado di far apparire testo, la dove prima non ce n'era, ma senza l'apparente aggiornamento della pagina.

Tutto ciò si traduce in un sistema più fruibile per l'utente, che non deve aspettare il refresh dal server (immagina connessioni lente) e gli appare un sistema più fluido e comodo all'utilizzo.

Negatività: più codice, pagine molto più pesanti, difficoltà a gestire utenti con disabilità visive.

Sai che non ho capito di quale progetto parli?

Poi per il come funziona lo so già e avrei anche già pronto uno scriptino per i suggerimenti con la tendina come dici tu.

Il codice in più per la UI non da fastidio se strutturi bene tutta l'applicazione e separi tutto quello che deve stare da una parte e dall'altra.

Il punto è un'altro: mi serve veramente o no per dare comodità?

risposto 10 anni fa
LonelyWolf
X 0 X
Il punto è un'altro: mi serve veramente o no per dare comodità?

Se utilizzato bene, AJAX sicuramente rende più "comodo" l'ulilizzo di un'applicazione web, basta pensare a GMail. Il punto forse è valutarne il prezzo e quindi la domanda che mi pongo è: il gioco vale la candela?

 :bye:

P.S.: anche l'edit dei post di questo forum (l'iconcina a destra del testo) non è male...

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Poi per il come funziona lo so già e avrei anche già pronto uno scriptino per i suggerimenti con la tendina come dici tu.

Il codice in più per la UI non da fastidio se strutturi bene tutta l'applicazione e separi tutto quello che deve stare da una parte e dall'altra.

Il punto è un'altro: mi serve veramente o no per dare comodità?

se ho capito bene esiste codice php che può fare quasi le stesse cose di ajax?

E' possibile vedere un po' di codice?

grazie

risposto 9 anni fa
frankphp
X 0 X

No, non esiste.

Se ti riferisci alla tendina non è altro che utilizzando ajax viene chiamata una funzione php che restituisce i valori da mettere nella tendina che viene renderizzata tramite js.

PHP è interpretato dal server

Ajax non è altro che un metodo per eseguire codice php (o asp, o altro) senza dover cambiare la pagina.

risposto 9 anni fa
LonelyWolf
X 0 X

No, non esiste.

Se ti riferisci alla tendina non è altro che utilizzando ajax viene chiamata una funzione php che restituisce i valori da mettere nella tendina che viene renderizzata tramite js.

PHP è interpretato dal server

Ajax non è altro che un metodo per eseguire codice php (o asp, o altro) senza dover cambiare la pagina.

questa cosa l'ho già realizzata utilizzando appunto ajax che richiama codice php.

Pensavo che esistesse un metodo  utilizzando solo php (anche se limitato), in modo tale

da rendere più "pulita" e leggera la pagina web.

grazie comunque e ciao

ps: sto cercando di risolvere anche un altro problema con ajax per lo stesso progetto

(trovi il tutto nei miei topic nel forum).

In pratica vorrei fare in modo che se l'utente inserisce un testo o un numero in un campo

automaticamente possa compilarsi un altro campo del form.

Es: inserisco 12 nel campo codice e mi ritrovo nel campo descrizione col nome dell'articolo

"pane" ad esempio. Ho letto che tu hai sviluppato un'applicazione e volevo chiederti se ti sei

imbattuto in una simile problematica.

risposto 9 anni fa
frankphp
X 0 X

In un certo senso si, nei form di modifica l'utente inserisce il codice, clicca su cerca e si compilano gli altri campi del prodotto (descrizione, prezzo, quantità, ecc), così li può modificare.

Ovviamente il codice essendo la chiave univoca non può e non deve essere modificata.

Ho utilizzato ajax, nello specifico utilizzo xajax che è molto comodo soprattutto per queste cose.

risposto 9 anni fa
LonelyWolf
X 0 X

In un certo senso si, nei form di modifica l'utente inserisce il codice, clicca su cerca e si compilano gli altri campi del prodotto (descrizione, prezzo, quantità, ecc), così li può modificare.

Ovviamente il codice essendo la chiave univoca non può e non deve essere modificata.

Ho utilizzato ajax, nello specifico utilizzo xajax che è molto comodo soprattutto per queste cose.

Mi intereserebbe sapere come, per piacere,se non ti dispiace ovviamente.

xajax l'ho scaricato ma non ho capito come utilizzare le funzioni.

grazie

risposto 9 anni fa
frankphp
X 0 X

Ad una prima occhiata mi era sembrato un po' complesso, poi visto con calma devo dire che è molto più semplice di quello che sembrava.

Premetto che ho appena iniziato ad usarlo per cui non sono un esperto in merito, quindi non considerare come "oro colato" quello che dico.

Prima di tutto ti consiglio di scaricarlo e guardare gli esempi inclusi, rendono tutto molto più facile.

Per usare xajax in sostanza ti servono:

- i file js e i due file php incusi nel file che scarichi

- uno o più file php in cui metti le funzioni scritte in php che ti servono, a.e.

function serach($codice){
//codice di ricerca nel db
//codice di ritorno della classe xajax
}

- un file in php che "registra" le funzioni del file precedente, quindi funzioni diverse non saranno utilizzabili dalla classe xajax

Infine nella pagina php principale includi i js, il file che registra le funzioni e fai scrivere tutta la parte dei javascript da xajax stesso. Il codice php rimane sempre pulito.

Forse l'ho spiegato male, ma è + facile a farsi che a dirsi, l'esempio che mi ha "illuminato" è multiply.

Lo trovi qui

risposto 9 anni fa
LonelyWolf
modificato 9 anni fa
X 0 X

Ad una prima occhiata mi era sembrato un po' complesso, poi visto con calma devo dire che è molto più semplice di quello che sembrava.

Premetto che ho appena iniziato ad usarlo per cui non sono un esperto in merito, quindi non considerare come "oro colato" quello che dico.

Prima di tutto ti consiglio di scaricarlo e guardare gli esempi inclusi, rendono tutto molto più facile.

Per usare xajax in sostanza ti servono:

- i file js e i due file php incusi nel file che scarichi

- uno o più file php in cui metti le funzioni scritte in php che ti servono, a.e.

function serach($codice){
//codice di ricerca nel db
//codice di ritorno della classe xajax
}

- un file in php che "registra" le funzioni del file precedente, quindi funzioni diverse non saranno utilizzabili dalla classe xajax

Infine nella pagina php principale includi i js, il file che registra le funzioni e fai scrivere tutta la parte dei javascript da xajax stesso. Il codice php rimane sempre pulito.

Forse l'ho spiegato male, ma è + facile a farsi che a dirsi, l'esempio che mi ha "illuminato" è multiply.

Lo trovi qui

grazie lonelywolf,

Ho scaricato i file xajax

e ho visionato la cartella multiply, ma ho ancora le idee confuse

(scusa non conosco ajax e nemmeno bene il php..quindi figuriamoci)

Considerando quello che hai detto tu nel precedente post

sapresti indicarmi come funzionano i file:

multiply.php

multiply.common.php

multiply.server.php

ciao.

risposto 9 anni fa
frankphp
X 0 X

Ok, vediamo se riesco a spiegarlo semplice, man mano che leggi guardati anche i file.

Partiamo da multiply.common.php, questo è il file in cui viene creata la classe e registrate le funzioni disponibili, infatti noterai che c'è il require_once di xajax.inc.php che istanzia la classe poi viene creato l'oggetto xajax (ovvero quello che userai per fare le richieste al server e gli si da come parametro il file che contiene le funzioni in php) e vengono registrate le funzioni disponbili (queste sono le funzioni presenti in multiply.server.php); in questo caso una sola $xajax->registerFunction("multiply");

Ovviamente i nomi dei file non sono leganti, ad esempio per la mia applicazione che (x ora) ha solo materiali e prodotti finiti ho separato le cose e ho common_materiali.php e common_prodotti.php che registrano le funzioni per i rispettivi ambiti.

Ora passiamo a multiply.server.php, questo è il file che contiene le funzioni vere e proprie e come già detto nel caso di multiply contiene solo una funzione function multiply($x, $y), ovviamente ce ne possono essere molte, (parlando della mia applicazione io ho i file chiamati funzioni_materiali e funzioni_prodotti ed ognuno contiene tutte le funzioni di aggiunta/modifica/ricerca/ecc per i singoli "reparti").

Dopo aver scritto tutte le funzioni, prima di tutto richiama nuovamente il file multiply.common.php (si chiama common perchè è usato sia dall'oggetto xajax che invia le richieste sia da quello che da le risposte) e poi viene avviata l'esecuzione delle richieste  $xajax->processRequests();.

Infine multiply.php è quello che vede l'utente, il form (o qualsiasi cosa ci vuoi mettere) che interagisce con l'utilizzatore, fare attenzione a:

require("multiply.common.php") ovvero dove viene creato l'oggetto xajax

<?php $xajax->printJavascript('../../'); ?>  ovvero quello che si occupa di inserire nella pagina tutti i js necessari al funzionamento, quindi quando editi la pagina vedi solo quella funzione, se la apri nel browser e visualizzi il sorgente ci troverai js, --> codice pulito in fase di editing!

Poi la pagina in se è semplice html, i bottoni hanno nell'evento onclick la chiamata alle funzioni registrate come in questo caso xajax_multiply......

quindi:

file delle funzioni: funzioni php dichiarate e scritte normalmente, come si fa normalmente in php

file comune: viene creato l'oggetto e registrate le funzioni, se non sono espressamente registrate qua dentro non saranno utilizzabili da xajax

file "front-end": quello che vede l'utente, qua usi le funzioni che diventano xajax_nomefunzioneregistrata(parametri,se,necessari)

Importantissimo:

Se le funzioni (quelle dentro a multiply.server.php ed esempio)  devono aprire/includere dei file devono avere il percorso specificato per bene perchè hanno come path di riferimento quello in cui si trova il file che le contiene, forse è + chiaro con uno schema:

/
|-file del sito, file common.php
\-cartella funzioni
 |-file funzioni.php

In questo caso funzioni.php nel richiedere common.php deve avere require("../common.php");

Questo è il funzionamento, non ti ho spiegato come ritornare i valori da ogni funzione:

1 - creare l'oggetto che risponde $objResponse = new xajaxResponse();

2 - aggiungere all'oggetto le risposte, in questo esempio multiply $objResponse->addAssign("z", "value", $x*$y);

3 - restituire l'oggetto return $objResponse;

Relativamente al punto 2 per i metodi e le spiegazioni vedi: http://wiki.xajaxproject.org/Documentation:xajaxResponse.inc.php

Ovviamente puoi aggiungere tutte le risposte che vuoi, non deve per forza essere una!

n.d.r.

adesso schiaccio post e vedo cosa cavolo ho scritto, speriamo di essere stato chiaro!

risposto 9 anni fa
LonelyWolf
X 0 X

ciao.

OK grazie. adesso è un po' più chiaro, anche se ho ancora

delle perplessità (dovute però alla mia insufficiente conoscenza

del php stesso)

Ancora un paio di cosette, scusa se insisto, ma penso che bisogna "battere" il ferro

finchè è caldo nel mio caso.

Come faccio a sapere che xajax potenzialmente fa tutto quello

che ho intenzione di realizzare.

Voglio dire, in merito alla mia esigenza come adatto il tutto

al fatto che voglio fare in modo che inserendo il codice di un prodotto

in un campo visualizzo la descrizione dello stesso in un altro campo del form?

risposto 9 anni fa
frankphp
X 0 X

Come faccio a sapere che xajax potenzialmente fa tutto quello

che ho intenzione di realizzare.

Voglio dire, in merito alla mia esigenza come adatto il tutto

al fatto che voglio fare in modo che inserendo il codice di un prodotto

in un campo visualizzo la descrizione dello stesso in un altro campo del form?

Di certo non troverai nella documentazione di XAJAX come fare esattamente quello che chiedi. Ma se fai un po' di pratica intuirai come utilizzare XAJAX per farlo...

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Forse non ti è chiara una cosa di base:

immagina un ristorante, ti arrivi, ti siedi, fai l'ordine al cameriere.

Il cameriere porta l'ordine al cuoco e poi dal cuoco porta il piatto a te.

Ajax è il cameriere.

risposto 9 anni fa
LonelyWolf
X 0 X

Forse non ti è chiara una cosa di base:

immagina un ristorante, ti arrivi, ti siedi, fai l'ordine al cameriere.

Il cameriere porta l'ordine al cuoco e poi dal cuoco porta il piatto a te.

Ajax è il cameriere.

e chi è il cuoco? Vissani? ;D

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Non ho fatto in tempo a finire! :D

il cuoco e chi ha insegnato al cameriere la strada è il programmatore.

risposto 9 anni fa
LonelyWolf
X 0 X

Non ho fatto in tempo a finire! :D

il cuoco e chi ha insegnato al cameriere la strada è il programmatore.

va be', vediamo un po' cosa riesco a fare.

grazie

risposto 9 anni fa
frankphp
X 0 X

ah ecco

avevo dimenticato di visionare sta pagina:

http://wiki.xajaxproject.org/Documentation:xajaxResponse.inc.php

dicevo io, ci sono delle funzioni di risposta da utilizzare preconfezionate!

Mica dovevo inventarmele (magari poi possono essere personalizzate, non so, non ho

spulciato bene ancora)

grazie ancora

risposto 9 anni fa
frankphp
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda