Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    validazione form: id al posto di name e getelementbyid (non va)

    (non so se devo postare questo thread qui o in php... credo qui....)

    Ho questa funzione per un piccolo carrello:

    codice:
    function passavalori(art, prz, qnt)
    			{
    			document.carrello['articolo'].value=art;
    			document.carrello['prezzo'].value=prz;
    			document.carrello['quantita'].value=qnt;		
    			document.carrello.submit();
    			}
    Se nel form metto name="carrello" funziona regolarmente e le variabili vengono spedite ad una pagina php senza problemi con questa chiamata:
    codice:
    javascript:passavalori('maglietta bianca','5.00','50')
    Le variabili vengono richiamate con $_POST['nome_var']

    Siccome il sito è in xhtml strict quando vado a validare la pagina ottengo l'errore there is no attribute "name".

    Ho provato a sostituire tutti i "name" con id e a modificare la funzione così:

    codice:
    function passavalori(art, prz, qnt)
    			{
    			window.document.getelementbyid('articolo').value=art;
    			window.document.getelementbyid('prezzo').value=prz;
    			window.document.getelementbyid('quantita').value=qnt;		
    			window.document.getelementbyid('carrello').submit();
    			}
    ma le variabili non arrivano più a destinazione...
    Dove sto sbagliando??

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    il window puoi ometterlo, ma devi rispettare le maiuscole
    document.getElementById

    ciao

  3. #3
    ciao, si aveveo provato già ma purtroppo non va lo stesso...
    ho anche provato a raggiungere l'elemento del form così:

    document.forms[0].elements['nomeelemento'].value=variabilepassatadallafunc

    ma nulla da fare, le variabili che passo non hanno proprio valore...

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ma nel form i campi hanno l'attributo name valorizzato? e' in base a quello che i dati vengono inviati al server...

    Posta il form

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    si, ognuno dei campi (che sono hidden) ha il rispettivo name...


    edit:
    ho modificato l'attributo "name" in "id" quando ho provato la strada di
    GetElementById('nomecampo')

    ma sia con name che con id non accade nulla. O meglio con id il form viene inviato ma le variabili sono vuote

  6. #6
    scusa non avevo letto "posta il form"...

    Al momento è così (anche se ora non invia nemmeno i dati -nemmeno vuoti dico- alla pag php)

    codice:
    <form id="carrello" method="post" action="contactus/products_ordini.php">
    		<div>
    		<input type="hidden" id="articolo" />
    		<input type="hidden" id="prezzo" />
    		<input type="hidden" id="quantita" />
    		</div>
    </form>
    Nel form non c'è il campo submit perché lo invio direttamente cliccando sul link che chiama la funzione...

    codice:
    function passavalori(art, prz, qnt)
    			{
    			document.getElementById('articolo').value=art;
    			document.getElementById('prezzo').value=prz;
    			document.GetElementById('quantita').value=qnt;		
    			document.GetElementById('carrello').submit();
    			}

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Quando sul server ricevi un dato dal form si utilizza il name per referenziarlo... ovvero ricevi il valore del campo usando il suo name.

    usa entrambi name ed id:
    ...
    <input type="hidden" id="prezzo" name="prezzo" />
    ...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    ho provato! ma ottengo l'errore (segnalato solo da IE): proprietà o metodo non supportati dall'oggetto...

    in realtà come ho scritto prima per qualche ragione (mi starà sfuggendo una virtoletta?) lo script che prima portava alla pagina di controllo (anche se con le variabili vuote) ora mi lascia lì e non si muove più... eppure non ho cambiato nulla

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    a parte le G maiuscole, che sicuramente ti saranno sfuggite ricopiando qui

    l' attributo name e' ancora utilizzabile per i campi del form, altrimenti e' normale non ti arrivi nulla,
    il name al <form> stesso sarebbe invalidante, ma tu aggiri il problema accedendovi via id

    se vuoi, per comodita', puoi tenere anche gli id per i campi hidden, ma aggiungendo comunque i name

    se hai i name, puoi addirittura fare cosi'
    var f=document.getElementById('id_form');
    f.elements['articolo'].value=art;
    ...
    f.submit();

    altrimenti usi tutti getElementById

    ciao

    EDIT: scusate, vedo che ne avete gia' parlato

  10. #10
    che dirvi? ora funziona!!

    mah forse problemi con la cache?? buh! cmq ho utilizzato sia id che name nei campi del form ed ha funzionato... Chissà magari avevo fatto qualche errore di digitazione prima!!

    GRAZIE MILLE PER L'AIUTO E LE RISPOSTE!!!!!

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.