Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316

    problema passaggio parametri funzione

    ciao, ho questa funzione che non funziona (scusate il gioco di parole) e non riesco a capire dove sia il problema:

    codice:
    <script>
    function Indietro(n){
    if(n==0)
    location.href='1.php';
    if(n==1)
    location.href='2.php';
    if(n==2)
    location.href)='3.php';
    }
    </script>
    e questa è la chiamata

    codice:
    echo"<input type='button'  value='Indietro' onclick='Indietro($type)'></input></br>";
    la variabile $type proviene dalla pagina precedente ed è corretta perchè per debug la sto stampando in fondo alla pagina..
    dov'è l'errore?

    ciao e grazie

    l.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Sospetto che la variabile non sia numerica... come la imposti?
    prova comunque a fare, prima dei test:
    codice:
    function Indietro(n){
    n=parseInt(n,10);
    if(n==0)
    ...
    
    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

  3. #3
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    la variabile è numerica (assume i valori 0,1,2), sostanzialmente sto facendo un pulsante indietro e devo tracciare da quale pagina (0,1,2) sono provenuto

    codice:
    $type=$_POST['type'];
    e nella pagina da cui arriva è

    codice:
    $type =0;
    e la invio così

    codice:
    <input type='hidden' name='type' value='$type'>
    <input type='submit'...
    e si trova dentro una form che è dentro una tabella..

    ciao e grazie
    l.

    edit: la form funziona perchè gli altri valori sono passati correttamente

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    E' come dicevo: i valori ricevuti tramite post o get (al pari di quelli ricavati direttamente dai campi dei form)sono sempre alfabetici anche se contengono una cifra numerica e quindi ne va fatto il casting (trasformazione di tipo) prima di confrontarli con un numero
    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
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    ah ok, non lo sapevo..(e non avevo nemmeno capito che stessi parlando di questo )
    comunque il codice che mi hai scritto sopra è per fare il cast?

    grazie
    l.

    edit: non sembra funzionare.. :/

    codice:
    function Indietro(n){
      n=parseInt(n,10);
    if(n==0)
      location.href='ConcertiPast.php';
    ...
    codice:
    echo"<input type='button'  value='Indietro' onclick='Indietro($type)'></input>
    le ho provate tutte ma non ottengo nulla..ho provato a togliere-mettere apici e virgolette ma non ho risolto
    Ultima modifica di leaf; 24-01-2014 a 18:26

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    prova a mettere:

    function Indietro(n){
    alert(typeof(n))
    ;

    e dicci cosa viene segnalato

    edit: male che vada adotta questo:
    codice:
    
    
    codice:
    <script>
    function Indietro(n){
    if(n.indexOf('0')>=0)
    location.href='1.php';
    if(n.indexOf('1')>=0)
    location.href='2.php';
    if(n.indexOf('2')>=0)
    location.href)='3.php';
    }</script>

    Ultima modifica di br1; 24-01-2014 a 18:52
    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

  7. #7
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    dice number

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Mi viene un dubbio: dato che stai generando il codice tramite un linguaggio lato server, hai verificato cosa realmente arriva al browser ? a volte inattesi ritorni a capo o chr(0) possono creare problemi...

    ps: ci siamo sovrapposti....

    comunque posta il codice che arriva al browser non quello che (dovrebbe) generarlo
    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

  9. #9
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    ehm non sono sicuro di aver capito cosa intendi con "cosa arriva al browser"..dunque, io sto stampando la variabile $type sulla pagina e mi stampa il valore 0 (che è giusto)..

  10. #10
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    codice:
    $type =0; //variabile
    echo'<table border="1" width="70%">
            <tr>
                .....
                    <form method='post' action='Destinazione.php'>
                    <input type='hidden' name='cod' value='$col[0]'>
                    <input type='hidden' name='var' value='0'>
                    <input type='hidden' name='type' value='$type'>
                    <input type='submit' name='nome' value='$col[1]'></input></form>";
               
    echo "</table>";
    i valori arrivano tutti correttamente nella pagina di destinazione

    codice:
    <script>
    function Indietro(n){
      alert(typeof(n));
     }
    /*if(n==0)
    location.href='ConcertiPast.php';
    if(n==1)
    location.href='ConcertiPres.php';
    if(n==2)
    location.href)='ConcertiFut.php';
    }*/
    </script>
    ...
    
    $type=$_POST['type'];  //riceve il valore
    echo"<h10>'$type'</h10>";  //stampa il valore ricevuto ed è corretto
    echo"<br><input type='button'  value='Indietro' onclick='Indietro($type)'></input> //passa il valore alla funzione

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