Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    7

    Gestire variabili php con ajax

    Salve a tutti,

    sono nuovo del forum mi sto imbattendo in un problema a quanto pare molto comune! Le ricerche fatte purtroppo non hanno portato buoni risultati. Vi espongo il problema :

    ho il seguente file: "index.php"

    Codice PHP:
    <?php
    header
    ('Content-Type: text/html; charset=utf-8' );
    require_once 
    './includes/autoload.inc.php';
    require_once 
    './includes/config.inc.php'


    $controller=new chome();
    if (isset(
    $_POST['linktpl'])) 

     
    $a $_POST['linktpl'];
     
    $controller->cambiatpl($a);

    else{

    $controller->set_page();
    $controller->cambiatpl('page');
     

    }

    ?>
    ed il seguente file Js: "script00.js"
    codice:
    document.getElementById('puls').onclick = function() {
         $.ajax({
            type: 'POST',
            url: 'index.php',
            data: { linktpl: 'link' },
            success: function(){
             alert("success");
            }
        });
    };
    il quale è inserito in un template (.tpl) gestito dallo script php.

    L'idea è quella di gestire l'evento click su ID='puls', in modo da cambiare il valore alla variabile $a, così da modificare l'aspetto della pagina.

    Facendo girare gli script, ricevo l'alert "success" all'evento click, ma a quanto pare non viene presa in considerazione la richiesta fatta sulla pagina "index.php", infatti la pagina non cambia aspetto come dovrebbe.

    Ringrazio anticipatamente tutti coloro parteciperanno alla discussione, un saluto.

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Ma che significa "non viene presa in considerazione"? Gli hai chiesto di fare un alert e ti fa un alert. Vuoi ricaricare la pagina? Allora perché usi ajax?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    7
    Ciao grazie per la risposta. Io voglio semplicemente fare in modo che la variabile $a venga modificata, cercando in rete mi è parso di capire Ajax sia il modo più "garbato" per farlo.
    L'alert non dovrebbe essere eseguito solo in caso di invio del post?
    Ultima modifica di zivon; 08-04-2014 a 10:28

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    La variabile $a esiste solo sul server, non sul browser di chi naviga, quindi se il cambio della variabile $a deve comportare una variazione della pagina hai 2 possibilità:

    1) allo script index.php devi far ritornare i dati necessari per modificare la pagina e modificarla tramite javascript usando tali dati.
    Questo però direi da escluderlo perché lo script che viene chiamato da AJAX è nello stesso file chiamante, quindi ti incasineresti col codice dovendo gestire il caso in cui il file venga chiamato da AJAX o se ci si arriva da normale navigazione, quindi se proprio vuoi farlo, lo script che elabora $a e restituisce i dati lo dovresti mettere in un altro file a se stante.
    Inoltre la variabile $a esiste solo per la durata dell'esecuzione dello script, quindi ogni chiamata AJAX genererà una nuova variabile $a, quindi se tra una chiamata e l'altra il valore precedente era importante (tipo un valore da incrementare), allora non funzionerà niente.

    2) lasci perdere AJAX, invii il dato con un normale form e rigeneri la pagina secondo il dato inviato.

    La seconda penso che sia la scelta migliore.

    E' vero che l'uso di AJAX rende più piacevole la navigazione, ma dipende anche da cosa devi fare.

  5. #5
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    E' vero che l'uso di AJAX rende più piacevole la navigazione, ma dipende anche da cosa devi fare.
    Ci facciamo gli spaghetti ormai è peggio del prezzemolo
    Questa volta, più che un voto.. è favoreggiamento.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    7
    Grazie per la risposta Alhazred, l'utilizzo di Ajax è voluto, ovviamente in questo caso è inutile. Sto cercando di capire il funzionamento.
    Mi sono posto il problema di impostare una variabile php tramite l'utilizzo di Js. Ora quello che vorrei fare è la seguente cosa:

    1) carico la pagina index.php, la quale visualizzerà un certo template con dei link.

    2) click sul link (ID = puls), a questo punto viene richiamato il Js

    3) "ricaricare" la pagina index.php con il nuovo valore settato da $_POST

    se ho capito bene dalla tua risposta questo non è possibile?

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Esatto, se usi AJAX non potrai far fare il reload della pagina allo script che chiami, inoltre ricaricare una pagina a seguito di una chiamata AJAX sarebbe anche contro natura, AJAX si usa proprio per evitare i reload della pagina, se devi fare un reload allora non usi AJAX.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    7
    Ok , so che è "contro natura", ma resta sempre il problema: come modifico variabili php attraverso Js? Ho fatto tante ricerche e tutte consigliano l'utilizzo di Ajax, il quale ho capito essere inutile!
    Ultima modifica di zivon; 08-04-2014 a 10:56

  9. #9
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Il tuo problema di base è che non hai capito come funziona tutto il giro. "Come modifico variabili php tramite js" è una domanda che non ha senso. Le variabili php esistono solo nello script php, che quando finisce spedisce la pagina al browser. Quando tu guardi la pagina sul browser, non esiste nessuno script php, e quindi nessuna variabile da modificare.

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    7
    Luca200 forse non riesco a spiegarmi. Io vorrei inviare tramite Js dei valori ad uno script php. Nel caso in questione questo valore andrebbe a modificare un template. Ma volendo semplificare le cose: somma di due numeri! io vorrei inviare tramite Js il valore dei due numeri, e farli elaborare dallo script in Php. A me non sembra una cosa senza senso o infattibile.

Tag per questa discussione

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 © 2025 vBulletin Solutions, Inc. All rights reserved.