Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    residenza
    Milano
    Messaggi
    188

    Scrivere cookie ad onclick radio

    Scusate l'imbranataggio, in JS sono proprio scarso!

    Volevo scrivere un cookie con un valore scelto da un radio, quando un utente lo seleziona (quindi in tempo reale e non ad invio form, per questo uso JS e non ho messo appunto il tag FORM).

    Ecco il codice che però non fa una mazza (neppure genera errori).
    codice:
    <!--
    // Funzione per scrivere il cookie
    function OnClickPic(quantepic) {
    	var ExpireDate = new Date ();
    	ExpireDate.setTime(ExpireDate.getTime() + (30 * 24 * 3600 * 1000));
    	document.cookie = "quante=quantepic; expires=" + ExpireDate.toGMTString();
    }
    // -->
    </SCRIPT>
    max 
    <input type=radio name=quantepic value=25 	onClick="OnClickPIC(25)"> 25
    <input type=radio name=quantepic value=50 	onClick="OnClickPIC(50)"> 25
    <input type=radio name=quantepic value=100 	onClick="OnClickPIC(100)"> 25
    ecc
    In effetti quel 'OnClickPic(quantepic)' l'ho proprio sparato usanto la sintassi PHP, ma dovrebbe essere uguale...
    Ad ogni modo vedo che il document.cookie non scrive proprio il nuovo biscotto neppure come stringa di testo 'quantepic' (nel caso in cui non lo interpreti, in questo mi pare JS sia proprio diverso da PHP), insomma non si scatena proprio l'evento ONCLICK!

    Idee?

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649

    Re: Scrivere cookie ad onclick radio

    Originariamente inviato da selidori
    (quindi in tempo reale e non ad invio form, per questo uso JS e non ho messo appunto il tag FORM).
    e cha male fa il <form>? elementi <input> non possono esistere fuori da form

    codice:
    function OnClickPIC(q) {
    	var ExpireDate = new Date();
    	ExpireDate.setTime(ExpireDate.getTime() + (30 * 24 * 3600 * 1000));
    	document.cookie = "quante="+q+"; expires=" + ExpireDate.toGMTString() +"; path=/";
    }
    codice:
    <form>
    <input type="radio" name="quantepic" value="25" onClick="OnClickPIC(25)"> 25
    <input type="radio" name="quantepic" value="50" onClick="OnClickPIC(50)"> 50
    <input type="radio" name="quantepic" value="100" onClick="OnClickPIC(100)"> 100
    </form>
    se non funziona cosi' non dipende dallo script ma da impostazione del browser

    per fare un test aggiungi questo
    codice:
    function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
    }
    
    window.onload = function() {
    alert(readCookie("quante"));
    }
    cosi' al reload puoi verificare cosa e' settato nel cookie
    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2000
    residenza
    Milano
    Messaggi
    188
    Grazie dell'aiuto ma... non va nulla.

    FF non fa proprio niente, internet explorer da' un errore sulla riga
    window.onload = function() {

    che secondo me infatti andrebbe corretta in
    window.onload = function(readCookie(quante)) {

    però non va lo stesso (non viene eseguito neppure l'alert, proprio non succede niente!).
    Comunque quella era una funzione accessoria di lettura cookie solo per debug.
    Non penso valga la pena perderci tempo (io i cookie li leggo direttamente dalle opzioni di FF e comunque ricaricando la pagina vedo il cambiamento se il cookie viene passato al webserver php che genera una pagina con <TITLE> contenente un testo con quel valore).

    Il punto è comunque che anche con il tag FORM nulla viene scritto alla selezione del radio.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2000
    residenza
    Milano
    Messaggi
    188
    FERMI TUTTI!
    Funziona!

    Avevo scritto male una banalità... l'apertura era <SCRIPT LANGAGE=JAVASCRIPT>... una U in meno!

    Il browser evidentemente non sapeva cosa fosse e tirava avanti.
    Grazie a tutti!

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