Joomla.it Forum
Non solo Joomla... => Sviluppo => : gluckos 11 Oct 2015, 03:47:48
-
Salve a tutti ragazzi, è il mio primo post. Mi sto occupando di joomla da circa una settimana anche se non sono nuovo del "campo".Il mio problema è effettuare chiamate ajax da un componente che sto sviluppando, dove ci sarà una funzione che mi restituirà testo o un json e mi darà esito(o mi invierà) riguardo ad alcune operazioni su una base di dati.
sarà qualcosa del tipo (parte JS):
$.ajax({
url:"view.html.php.php$task=.testJson",
type:"POST",
data: {
action: u,
username: u,
},
success:function(msg){
alert(msg);
},
error:function(msg){
console.log(msg);
}
Ora, il problema viene già con l'url che penso sia sbagliato, ho letto un altro post e consigliava in questo modo. La funzione sarà in controller.php function testJson() {
global $mainframe;
//prendere i parametri
// effettuare qualunque operazione
//inviare il respondo
$mainframe->close();
}
Naturalmente, penso che il tutto sia assolutamente errato. Vorrei semplicemente fare una richiesta, accedere lato server ai parametri di richiestra e inviare un json o un testo.
Spero in una vostra risposta è da 2 giorni che ci sbatto la testa.
-
ciao, l'url dovrà essere qualcosa di questo genere:
index.php?option=com_tuocomponente&task=nomecontrollerlist.nomemetodo
di solito si usa il controller del list e non del singolo elemento.
Il metodo deve essere nel controller indicato nell'url, ovviamente la gestione dei dati può stare nel model (ma vah?)
global $mainframe non si usa da parecchie versioni.
stampa i dati sul canale di output e termina con JExit() es:
....
echo json_encode($myModel->getMyData()); // $myModel->getMyData() ovviamente è ipotetico
JExit();
ciao,
marco
-
ps: dimenticavo :(
benvenuto sul forum! :)
-
io ho risolto il problema credo più semplicemente :
faccio creare un file config.php che compilo con i dati presi dal configuration.php presente nella root principale di joomla, nel quale creo la mia connessione al database.
faccio le chiamate ajax inserendo come path, per esempio 'components/com_miocom/querysuldatabase.php' nel quale chiaramente c'è l'include al mio config.php
e tutto funziona perfettamente
-
[...]un file config.php [...] con i dati presi dal configuration.php [...].
[...] 'components/com_miocom/querysuldatabase.php' nel quale chiaramente c'è l'include al mio config.php
per semplificare: perché non includi direttamente configuration.php anziché avere due files di configurazione da gestire? ;)
ma, ti sembra più semplice dell'aggiungere un metodo al controller? ???
faccio le chiamate ajax inserendo come path, per esempio 'components/com_miocom/querysuldatabase.php'
se la semplificazione è soggettiva, sicurezza e convenzioni di coding lo sono decisamente meno. scusa, ma devo dirti che questo è proprio l'approccio sbagliato con joomla: deve esistere un solo entry ponit per tute le richieste!
vedi anche questa risposta in cui spiego un po' meglio l'approccio: http://forum.joomla.it/index.php/topic,254870.msg1184857.html#msg1184857
ciao e buona programmazione
marco
---
edit: linkato in modo errato ::)