Far interagire una pagina html con funzioni php

di il
9 risposte

Far interagire una pagina html con funzioni php

Ciao ragazzi...ho il seguente problema e spero che mi possiate dare una mano..utilizzando il framework cakephp ho creato un controller che esegue delle operazioni sui model...in particolare una funziona mi restituisce un valore e inserisce in una tabella dei record e un altra funzione mi mostra i record di un altra tabella...il mio problema è quello di voler creare due semplici pulsanti all'interno di una pagina tramite i quali con uno genero un qrcode dal valore restituito dalla funzione e l'altro mostra la lista dei record...come posso realizzare questa pagina? ho poche conoscenze su javascript, ajax etc quindi siate gentilmente il più specifici possibile...grazie

9 Risposte

  • Re: Far interagire una pagina html con funzioni php

    Ciao, sicuramente dovrai usare appunto aiax, ma è necessario prima che ti documenti un po sul suo funzionamento.
    In pratica ti consiglio di usare jquery e quindi con lui ajax ( jquery ajax = $.ajax )
    Cosi richiami il tuo php, prelevi i dati e li stampi.

    Se ci fai vedere il tuo php potremmo darti una mano
  • Re: Far interagire una pagina html con funzioni php

    Si ok...allora dentro il controller APIController mi ritrovo questa funzione:

    public function generaPartita() {

    // mi genero un numero casuale che identifica la partita corrente
    $id = rand();
    $this->autoRender = false;

    // prendo a caso 4 domande dalla tabella questions
    $domande = $this->Question->find('all',array('order' => 'rand()','limit'=>'4'));

    //inserisco le domande in una nuova tabella composta da idPartita e idDomanda
    $this->loadModel('Match');
    foreach ($domande as $d) {

    $this->Match->create();
    $record = array('Match' => array('idMatch' => $id,'question_id'=>$d['Question']['id']));
    $this->Match->save($record);
    }

    echo $id; // restituisco l'id in modo da creare il QR-code
    }

    ora il mio problema è questo...supponiamo di avere una pagina html...tramite la libreria qrcode.js riesco a crearmi un codice partendo da una variabile impostata da me...come faccio ad assegnare a questa variabile invece il valore $id della funzione generaPartita()??

    PS: la pagina html e quella php risiedono in due punti differenti
  • Re: Far interagire una pagina html con funzioni php

    Allora non é un problema dunaue dovresti crearti una funzione js che richiami la pagina php e prelevi il codice ( esempio
    ) lo faccio con jquery per è è piu veloce scriverla sintassi
    function prelevaId() {
    $.post('iltuofile.php', funcion(data) { $('#iddovevuoistampare').html(data); )});
    }

    Ecco con questa breve chiamata in ajax puoi recuperare il tuo id e stamparlo dove vuoi
    http://api.jquery.com/jquery.post link alla spiegazione
  • Re: Far interagire una pagina html con funzioni php

    Ti posto il mio codice html cosi mi dai delle dritte:

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html" />
    <meta name="author" content="maidenfp" />

    <title>Quiz Challenge</title>

    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="qrcode.js"></script>

    <div id="qrcode" style="width:300px; height:300px; margin-top:150px; margin-left: 100px;"></div>
    </head>

    <body background="sfondo.jpg">

    <script type="text/javascript">

    function generaCodice() {
    // var s = Math.floor(Math.random()*11);
    //var p = ""+s;
    var p = "19199";
    new QRCode(document.getElementById("qrcode"), p);
    }

    generaCodice();

    </script>

    </body>
    </html>

    come e dove dovrei inserirla quella funzione?? inoltre mi sorge un dubbio...siccome la pagina php è composta da diverse funzioni, come passo alla funzione js che hai creato tu proprio una determinata funzione della pagina php???
  • Re: Far interagire una pagina html con funzioni php

    Allora iniziamo dal fatto che il codice javascript in una pagina HTML ha sempre bisogno di un input ovvero, al click di qualcosa avvia la funione o al caricamento pagina. Quindi per far particre il codice js devi far cosi: ( e gli script meglio metterli nella head )
    
    <head>
    <meta http-equiv="content-type" content="text/html" />
    <meta name="author" content="maidenfp" />
    
    <title>Quiz Challenge</title>
    
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="qrcode.js"></script>
    
    <script type="text/javascript">
    
    function generaCodice() {
    // var s = Math.floor(Math.random()*11);
    //var p = ""+s;
    var p = "19199";
    new QRCode(document.getElementById("qrcode"), p);
    }
    
    function prelevaId() {
    $.post('iltuofile.php', funcion(data) { $('#iddovevuoistampare').html(data); )});
    }
    
    $(document).ready({
    // al load di tutta la pagina esegue le funzioni
    generaCodice();
    prelevaId();
    });
    
    </script>
    
    
    </head>
    <div id="qrcode" style="width:300px; height:300px; margin-top:150px; margin-left: 100px;"></div>
    <body background="sfondo.jpg">
    
    
    
    </body>
    </html>
    mentre per la pagina PHP visto che ha diverse funzioni allora penso ti conviene creare una pagina php esclusiva che richiami quella funzione ad esempio:
    
    <?php
    require '..qui il percordo della pagina php.php'; // percorso della pagina php con la funzione
    
    $variabile = nomedellafunzione(); // cosi la esegui
    echo $variabile; // stampi il risultato
    
    
    ora questa è banalissimo ma magari devi ricevere qualche id per far avviare la funzione?
  • Re: Far interagire una pagina html con funzioni php

    In pratica l'id generato dalla funzione php deve andare nella variabile che ho chiamato p della funzione generaCodice(). Lo scenario immaginato è questo (x tesi universitaria) avvio questa pagina
    e mi ritrovo un codice QR che viene generato ogni tot minuti. quindi dovrei richiamare la funzione generacodice ad intervalli (credo con l'utilizzo di setInterval)..cioè sostanzialmente il pulsante non mi interessa averlo. Sono nuovissimo alla programamazione php e javascript quindi sto forse anche sparando delle cavolate...
    Cioè io vorrei un file html che una volta aperto mi genera ogni tot minuti un codice QR diverso in base all'id fornito dalla funzione php. Quindi deve richiamare ogni tot minuti la funzione php per ottenere l'id e da esso generare il codice. E' possibile ciò???
  • Re: Far interagire una pagina html con funzioni php

    Tranquillo XD anche se non conosci la programmazione PHP e JS basta saperti spiegare XD
    allora la tua pagina HTML dovrebbe essere cosi
    
    
    <head>
    <meta http-equiv="content-type" content="text/html" />
    <meta name="author" content="maidenfp" />
    
    <title>Quiz Challenge</title>
    
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="qrcode.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    
    <script type="text/javascript">
    
    function generaCodice() {
    // var s = Math.floor(Math.random()*11);
    //var p = ""+s;
    var p = "19199";
    new QRCode(document.getElementById("qrcode"), p);
    }
    
    function prelevaId() {
    $.post('iltuofile.php', function(data) { $('#qrcode').html(data); )});
    }
    
    $(document).ready({
    // al load di tutta la pagina esegue le funzioni
    setInterval(prelevaId(), 3000);
    setInterval(generaCodice(), 3200);
    
    });
    
    </script>
    
    
    </head>
    <div id="qrcode" style="width:300px; height:300px; margin-top:150px; margin-left: 100px;"></div>
    <body background="sfondo.jpg">
    
    
    
    </body>
    </html>
    
    da quello che ho capito dunque tu dovresti generare ogni 3 secondi la funzione per prelevare il codice dal PHP e stamparlo in #qrcode e poi ogni 3.2 secondi ti generi il tuo QRCODE

    con setinterval che parti al load della pagina ogni 3secondi lo esegue
  • Re: Far interagire una pagina html con funzioni php

    Si, ma il problema è che (come hai scritto tu il codice), alla variabile p rimane il valore 19199 e non quello generato dalla chiamata della funzione php..quindi il qr code generato sarà relativo a 19199 e non va bene..
    
    
    function generaCodice() {
    var p = "19199"; <- qui dovrei avere il valore della chiamata alla funzione php
    new QRCode(document.getElementById("qrcode"), p);
    }
    
    
    
  • Re: Far interagire una pagina html con funzioni php

    Aaa e si perché se tu gli imposti da subito var p = 19199 p sará sempre 19199 XD, invece dovresti recuperarlo ogni volta, quindi che so abbiamo stampato per ora il codice della funzione php nel id qrcode quindi lo recuperiamo cosi

    Var p = $('#qrcode').html(); cosi recuperiamo il valore stampato in quel div
    Ovvio poi sistema tu gli ID dei div corretti

    Ciao
Devi accedere o registrarti per scrivere nel forum
9 risposte