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

    Oggetti il cui nome è un numero

    Io ho degli oggetti che come nome hanno un numero (che è un ID preso da una tabella del DB).

    Non riesco a far visualizzare o nascondere gli oggetti al click del mouse, perchè mi da degli errori (mentre se li chiamo con una stringa anzichè un numero, funziona).

    Ho provato ad utilizzare eval() nel seguente modo:

    codice:
    function categ(cat, check){
            if(check){
                eval(cat+'.style.visibility = "visible"');
                eval(cat+'.style.display = ""');
            }
            else{
                eval(cat+'.style.visibility = "hidden"');
                eval(cat+'.style.display = "none"');
            }
        }
    Ecco come chiamo tale funzione:

    Codice PHP:
    echo "<a href=\"#$rstcateg[idc]\" onclick=\"categ($rstcateg[idc], this);\">$rstcateg[nome]</a>
    "
    ;
            echo 
    "<a name=\"$rstcateg[idc]\" style=\"display:none;\">"
    Sapete aiutarmi?

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    in js i nomi delle variabili devono iniziare con una lettera, $ o _
    se cat è un numero eval eseguirebbe questo codice
    1.style.visibility = "visible"
    che è sbagliato, inoltre senza un document.getElementById funziona solo su ie
    la domanda è: perché non usare dei nomi alfanumerici?

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    ho notato solo adesso che usi name
    questo è il codice giusto

    <elemento id="id_dell_elemento">
    <script>
    document.getElementById('id_dell_elemento').style ...

  4. #4
    Ottimo, con document.getElementById funziona correttamente, anche mantenendo come ID un numero anzichè una stringa alfanumerica.

    Grazie

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da ciri_sn_solo_io
    anche mantenendo come ID un numero anzichè una stringa alfanumerica.
    e' sbagliato comunque,
    come detto sopra: un nome (name, id, classe,...) non puo' essere solo numerico o iniziare per numero

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da ciri_sn_solo_io
    Ottimo, con document.getElementById funziona correttamente, anche mantenendo come ID un numero anzichè una stringa alfanumerica.

    Grazie
    Sinceramente ogni tanto mi vengono dei dubbi, perchè certi browser digeriscono anche le porcate più assurde. Comunque, da:
    http://www.w3.org/TR/html401/types.html#type-name

    leggo che:

    ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
    Pietro

  7. #7
    Sto provando a mettere come ID un nome alfanumerico, ma mi da errore.

    Ecco il codice:

    Codice PHP:
    $catID "categoria_"$rstcateg['idc'];
            echo 
    "<a href=\"#$catID\" onclick=\"categ($catID, this);\">$rstcateg[nome]</a>
    "
    ;
            echo 
    "<a id=\"$catID\" style=\"display:none;\">"
    Id il codice JS:

    codice:
    function categ(cat, check){
            if(document.getElementById(cat).style.display == "none"){
                document.getElementById(cat).style.visibility = "visible";
                document.getElementById(cat).style.display = "";
            }
            else{
                document.getElementById(cat).style.visibility = "hidden";
                document.getElementById(cat).style.display = "none";
            }
        }
    Mi dice sempre: "Neccessario Oggetto"

    Che c'è che non va?

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    devi mettere gli apici
    onclick=\"categ('$catID', this);\"

    rispondendo a pietro09
    hai ragione, i browser si comportano bene anche con id solo numerici, sia ff, opera che safari
    ma è giusto? e di chi è la colpa?
    a mio parere non è giusto dal momento che esiste uno standard
    sarei d'accordo se avessero proposto una miglioria
    ma permettere token solo numerici non migliora proprio niente
    e credo, non ho le prove, che la colpa sia di ie
    dato che prima le pagine erano scritte e testate solo su ie, e dato che ie permetteva qualsiasi schifezza, gli altri browser erano costretti a comportarsi in modo simile, altrimenti nessuno li avrebbe usati
    (se oggi nel forum html ci sono decine di utenti che scrivono idOggetto.style ... senza getElementById, figurati 5, 6 o 7 anni fa)
    credo comunque che grazie a ff la tendenza stia cambiando

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Io ti dò certamente ragione. Non mi viene proprio di mettere come ID un numero, o mettere ID uguali nella pagina; ma solo perchè sono abituato così da prima e non perchè (purtroppo) ho letto lo standard.

    Però una cosa rischio di dirla: la colpa è (quasi) tutta della Microsoft.
    Pietro

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.