Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    MVC - contenuto view che cambia in base a javascript

    Ciao tutti,

    tanto per fare "un po di allenamento" sto scrivendo un progetto con un "mio" MVC.

    ora mi trovo ad affrontare questo problema:

    il contenuto di una view, varia, in base alla scelta di determinate opzione da parte del visitatore.
    Tramite javascript, cambio il contenuto di un "div", prendendo il nuovo contenuto html ($.get) da un altro file (nuovoFile.tpl.php).


    nuovoFile.tpl.php prende una parte dei dati di cui è formato, dal database.

    Come posso gestire questa cosa?
    la chiamata $.get che faccio con javascript, viene sempre gestita passando dal controller ?!

    oppure va gestita direttamente da dentro "nuovoFile.tpl.php" ?! (quindi devo richiamare la connessione al db eccetera.. all'interno di questo file) ?!?

    Se non fosse per il "cambio di contenuto" con javascript avrei tutto il giro (del MVC) anche bello chiaro, ma sta cosa mi da un sacco di confusione
    Ultima modifica di aquatimer2000; 13-02-2020 a 12:11
    aquatimer2000

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    714
    Quando chiami nuovoFile.tpl.php da js questo non viene popolato, perché non "passa" da php, quindi il suo caricamento è esterno al framework che stai usando. In pratica è come se tu chiamassi un file html semplice.

    Al momento sto facendo la stessa cosa ed ho risolto così:

    - crei una route da contattare tramite chiamata ajax che ti fornisce i dati per popolare
    nuovoFile.tpl.php
    - unisci i dati provenienti dalla chiamata ajax con l'html di
    nuovoFile.tpl.php tramite javascript

    Ovviamente l'approccio cambia in base allo stack che stai usando, in questi casi è molto comodo usare un framework js come react o vue, ma puoi farlo tranquillamente anche con jquery o vanilla js. Così facendo è abbastanza inutile utilizzare un template engine per il file da caricare, puoi usare html semplice o addirittura inserirlo direttamente nel template principale e nasconderlo tramite css finché non ti serve mostrarlo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    714
    Mi ero perso una cosa, la chiamata al db non va mai fatta dalla view, dovresti farla dal controller (o meglio ancora dal model). Per questo ti ho consigliato di crearti una route apposita per prelevare quei dati. Dietro a quella route avrai il controller che fa tutte le operazioni necessarie e ti rimanda i dati (meglio se in formato json) che ti servono.

  4. #4
    Quote Originariamente inviata da M4V1 Visualizza il messaggio
    la chiamata al db non va mai fatta dalla view, dovresti farla dal controller (o meglio ancora dal model)
    esatto, proprio per questo non sapevo come gestire questo caso particolare!

    Quote Originariamente inviata da M4V1 Visualizza il messaggio
    Per questo ti ho consigliato di crearti una route apposita per prelevare quei dati. Dietro a quella route avrai il controller che fa tutte le operazioni necessarie e ti rimanda i dati (meglio se in formato json) che ti servono.
    perfetto, al momento mi sembra tutto chiaro !!
    Grazie mille per l'aiuto !!
    aquatimer2000

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.