Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: jquery e sessione

Hybrid View

  1. #1

    jquery e sessione

    salve,
    ho bisogno di cancellare una variabile di sessione senza uscire dalla pagina in cui mi trovo.
    Leggendo qua e la forse si può fare con jquery.

    Con php faccio così:
    codice:
    unset ($_SESSION['cliente']);
    ma ovviamente lo fa al caricamento della pagina successiva. A me invece serve rimanere nella stessa pagina

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Le variabili di sessione stanno sul server. JS non vi ha accesso.

    Se vuoi cancellarne una senza ricaricare la pagina devi fare una chiamata asincrona (ajax)
    No

  3. #3
    mi sapreste dire come si fa?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    cancella_variabile.php
    Codice PHP:
    <?php
    unset($_SESSION["cliente"]);
    la funzione javascript:
    codice:
    var xhr = new XMLHttpRequest;
    xhr.open("get", "cancella_variabile.php", true);
    xhr.send();

    Ovviamente devi fare tutti i controlli lato server prima di cancellare la variabile...

    http://www.html.it/guide/guida-ajax/
    No

  5. #5
    ho creato un file index.php
    codice:
    <
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Documento senza titolo</title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script><script>
    function cancella() {
    var xhr = new XMLHttpRequest;
    xhr.open("get", "cancella_variabile.php", true);
    xhr.send(); 
     
    }
    function inserisci() {
    var xhr = new XMLHttpRequest;
    xhr.open("get", "inserisci_variabile.php?a=1", true);
    xhr.send(); 
    }
    </script>
    </head>
    <?php
    $a = $_SESSION["cliente"];
    echo "<script>alert('".$a."');</script>";
    ?>
    <body>
    <a href="" onClick="inserisci()">inserisci</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <a href="" onClick="cancella()">cancella</a>
    </body>
    </html>
    poi il file inserisci_variabile.php così:
    codice:
    <?php session_start(); ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Documento senza titolo</title>
    </head>
    <body>
    <?php
    echo "<script>alert('ciao');</script>";
    $_SESSION["cliente"] = $_GET['cliente']; 
    ?>
    </body>
    </html>

    e il file cancella_variabile.php così:
    codice:
    <?php session_start(); ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Documento senza titolo</title>
    </head>
    <body>
    <?php
    unset($_SESSION["cliente"]); 
    ?>
    </body>
    </html>

    Cosa sbaglio?

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Cosa non va?
    Perché non usi jquery per fare le chiamate ajax visto che carichi la libreria?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    non so farlo. potreste illuminarmi cortesemente?

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Nei file inserisci e cancella non mettere l'html... basta il php
    (non è questo che lo blocca ma meglio toglierlo )
    No

  10. #10
    Ok, ci siamo. index.php
    codice:
    <?php session_start(); ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Documento senza titolo</title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
    <script>
    function cancella() {
    $.ajax({
      type: "POST",
      url: "inserisci_variabile.php",
      data: { cliente: "0"}
    })
      .done(function( msg ) {
        alert( "Data Saved: " + msg );
      }); 
    }
    function inserisci() {
    $.ajax({
      type: "POST",
      url: "inserisci_variabile.php",
      data: { cliente: "1"}
    })
      .done(function( msg ) {
        alert( "Data Saved: " + msg );
      });
    }
    </script>
    </head>
    <?php
    $a = $_SESSION["cliente"];
    echo "<script>alert('".$a."');</script>";
    ?>
    <body>
    <a href="" onClick="inserisci()">inserisci</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <a href="" onClick="cancella()">cancella</a>
    </body>
    </html>
    adesso funziona.
    Mi chiedo una cosa però. La mia speranza era far scrivere la variabile in sessione senza far ricaricare la pagina.
    Pensavo che con javascript, jquery o Ajax si potesse fare.
    Mentre da questa piccola prova che ho fatto comunque la pagina index.php viene ricaricata.

    Vi chiedo se deve essere per forza così.... oppure il refresh si può evitare?

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.