Buongiorno a tutti,
intanto vorrei porre i miei complimenti per il sito, trovo sempre articoli molto utili
Sono a chiedere un vostro aiuto per un gestionale che sto sviluppando (... cercando di sviluppare).
L'idea di fondo è un avere un sito web con url statico es. www.miaapp.it/app/ dove viene caricato lo script principale index.php. Questo script gestisce tutte le richieste utente con una struttura a moduli che vengono "renderizzati" alla richiesta dell'utente, ognuno tramite un Dialog jquery all'interno della schermata principale.
La struttura è del tipo:
La prima volta che viene avviata l'app, non essendoci alcuna richiesta viene istanziato il modulo main_page che invia come view l'applicazione principale con solo un menu a disposizione.
Alla volontà di inserire per esempio una nuova contabilità, tramite selezione dal menù viene inviata una richiesta POST ad index.php che rileva la richiesta, istanza una nuova classe Contabilità integrando il relativo modulo che restituisce in output la view tramite un Dialog Jquery. Il tutto all'interno della pagina principale. Alla chiusura del dialog, i suoi script e stili vengono eliminati con lui in modo da pulire il DOM.
Fino a qui nessun problema.
Il problema nasce quando, dall'interno del Dialog contabilità, invio una richiesta POST ad index (ad esempio di salvataggio nel db). Ciò che vorrei è che index utilizzasse l'istanza di Contabilità che ha creato il Dialog, ma non ci riesco.
Vi riassumo quale dovrebbe essere il processo a cui ho pensato:
1) Primo avvio -> nessuna richiesta - Avvio pagina principale con solo il menù
2) Da menù richiedo nuovo inserimento contabilità -> index istanza una nuova classe Contabilità -> Contabilità risponde con la view
3) Dal dialog contabilità è richiesta una verifica nel db -> index riceve la richiesta -> passa la richiesta all'istanza Contabilità che ha generato il dialog -> la classe elabora la richiesta -> restituisce l'output ad index -> index restituisce la view o l'echo del caso
ecc...
Il mio problema è con il punto 3: non riesco a far elaborare la richiesta proveniente dalla view dall'istanza della classe che ha creato la finestra su cui sto lavorando, infatti per salvare la contabilità inserita devo istanziare nuovamente la classe Contabilità (vedi codice sotto), ma non vorrei...
Riuscite a darmi qualche suggerimento? sono alle prime armi con php...
Grazie a tutti
Vi riporto la bozza del codice di index.php. Se notate, per gestire il caso di "$_POST['cmd'] == "Salva_Contabilita" sono costretto ad istanziare nuovamente la classe Contabilità perchè, ad ogni richiesta $.post con Jquery l'oggetto obj precedentemente creato non è disponibile.
Ho provato anche a salvare l'oggetto nell'array $_SESSION ma viene restituito l'errore di serializzazione di PDO presente nella classe Contabilita con cui accedo al db.
intanto vorrei porre i miei complimenti per il sito, trovo sempre articoli molto utili
Sono a chiedere un vostro aiuto per un gestionale che sto sviluppando (... cercando di sviluppare).
L'idea di fondo è un avere un sito web con url statico es. www.miaapp.it/app/ dove viene caricato lo script principale index.php. Questo script gestisce tutte le richieste utente con una struttura a moduli che vengono "renderizzati" alla richiesta dell'utente, ognuno tramite un Dialog jquery all'interno della schermata principale.
La struttura è del tipo:
Codice:
- index.php
- resources/
- moduli/
- main_page/
- model
- controller
- view
- login/
- model
- controller
- view
- contabilità/
- model
- controller
- view
- automezzi/
- model
- controller
- view
- agenda/
- model
- controller
- view
La prima volta che viene avviata l'app, non essendoci alcuna richiesta viene istanziato il modulo main_page che invia come view l'applicazione principale con solo un menu a disposizione.
Alla volontà di inserire per esempio una nuova contabilità, tramite selezione dal menù viene inviata una richiesta POST ad index.php che rileva la richiesta, istanza una nuova classe Contabilità integrando il relativo modulo che restituisce in output la view tramite un Dialog Jquery. Il tutto all'interno della pagina principale. Alla chiusura del dialog, i suoi script e stili vengono eliminati con lui in modo da pulire il DOM.
Fino a qui nessun problema.
Il problema nasce quando, dall'interno del Dialog contabilità, invio una richiesta POST ad index (ad esempio di salvataggio nel db). Ciò che vorrei è che index utilizzasse l'istanza di Contabilità che ha creato il Dialog, ma non ci riesco.
Vi riassumo quale dovrebbe essere il processo a cui ho pensato:
1) Primo avvio -> nessuna richiesta - Avvio pagina principale con solo il menù
2) Da menù richiedo nuovo inserimento contabilità -> index istanza una nuova classe Contabilità -> Contabilità risponde con la view
3) Dal dialog contabilità è richiesta una verifica nel db -> index riceve la richiesta -> passa la richiesta all'istanza Contabilità che ha generato il dialog -> la classe elabora la richiesta -> restituisce l'output ad index -> index restituisce la view o l'echo del caso
ecc...
Il mio problema è con il punto 3: non riesco a far elaborare la richiesta proveniente dalla view dall'istanza della classe che ha creato la finestra su cui sto lavorando, infatti per salvare la contabilità inserita devo istanziare nuovamente la classe Contabilità (vedi codice sotto), ma non vorrei...
Riuscite a darmi qualche suggerimento? sono alle prime armi con php...
Grazie a tutti
Vi riporto la bozza del codice di index.php. Se notate, per gestire il caso di "$_POST['cmd'] == "Salva_Contabilita" sono costretto ad istanziare nuovamente la classe Contabilità perchè, ad ogni richiesta $.post con Jquery l'oggetto obj precedentemente creato non è disponibile.
Ho provato anche a salvare l'oggetto nell'array $_SESSION ma viene restituito l'errore di serializzazione di PDO presente nella classe Contabilita con cui accedo al db.
PHP:
if(isset($_POST['cmd'])){
if($_POST['cmd'] == "Ricerca"){
$obj = new Search();
}elseif($_POST['cmd'] == "Modifica_password"){
$opt = array( "width" => 400,
"height" => 250,
"position" => '{ my: "center", at: "center", of: "#left-pane" }',
"draggable" => "true",
"modal" => "false",
"resizable" => "false",
"closeOnEscape" => "false");
$obj = new Change_Password($opt);
}elseif($_POST['cmd'] == "Scheda_veicolo"){
$obj = new Vehicle();
}elseif($_POST['cmd'] == "Nuova_Contabilita"){
$obj = new Contabilita();
}elseif($_POST['cmd'] == "Disconnetti"){
$obj = new Login();
}elseif($_POST['cmd'] == "Report_produzione"){
$opt = array( "width" => 700,
"height" => 500,
"position" => '{ my: "center", at: "center", of: "#left-pane" }',
"draggable" => "true",
"modal" => "false",
"resizable" => "true",
"closeOnEscape" => "false");
$obj = new Report($opt);
}elseif ($_POST['cmd'] == "Salva_Contabilita") {
$obj = new Contabilita();
$result = $obj->VerificaEsistenzaID($_POST['obj']['id_int']);
if($result->rowCount() > 0){
echo "Errore: Il db contiene già un intervento con questo Id";
}else{
$result = $obj->InserisciAnagrafica($_POST['obj']);
if($result){
echo json_encode($_POST['obj']);
//echo "Intervento salvato nel db";
}else{
echo "Errore: Errore nel salvataggio dell'intervento nel db";
}
}
exit();
}
else{
exit();
}
echo $obj->Render($_POST['cmd']."_".$_POST['count']);
exit();
}
echo Main_Page::Render();
exit();
Ultima modifica: