Back to top

Autore Topic: jquery ajax e joomla un po come aglio olio e peroncino  (Letto 3307 volte)

Offline gluckos

  • Nuovo arrivato
  • *
  • Post: 1
    • Mostra profilo
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):

Codice: [Seleziona]

$.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
Codice: [Seleziona]
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.


Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:jquery ajax e joomla un po come aglio olio e peroncino
« Risposta #1 il: 11 Ott 2015, 15:29:35 »
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:

Codice: [Seleziona]
....
echo json_encode($myModel->getMyData());  // $myModel->getMyData() ovviamente è ipotetico
JExit();


ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:jquery ajax e joomla un po come aglio olio e peroncino
« Risposta #2 il: 11 Ott 2015, 15:31:19 »
ps: dimenticavo  :(

benvenuto sul forum!  :)
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline meph

  • Appassionato
  • ***
  • Post: 227
    • Mostra profilo
Re:jquery ajax e joomla un po come aglio olio e peroncino
« Risposta #3 il: 18 Ott 2015, 10:13:41 »
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
« Ultima modifica: 18 Ott 2015, 10:15:27 da meph »
Se sotto il cielo c'è qualcosa di speciale...passerà di qui prima o poi.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:jquery ajax e joomla un po come aglio olio e peroncino
« Risposta #4 il: 18 Ott 2015, 11:11:28 »
[...]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  ::)
« Ultima modifica: 18 Ott 2015, 16:37:37 da mmleoni »
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

 



Web Design Bolzano Kreatif