Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    portare valori in un foglio esterno. non riesco a valorizzare le variabili

    ciao , premetto che non sono una cime , in particolare su js.

    ho un problema di passaggio valori .
    nella pagina php ho un po di codice html tipo il segurnte
    Codice PHP:
           echo "<form action=\"invio_form.php?id_user=$idus&contins=$conteggio\" name=\"invio_formconta\" method=\"post\" onSubmit=\"return inviofat()\">";
                    echo 
    "<input type=\"hidden\" name=\"tipopage\" value=\"fattnew\" />
                         "
    ;
                    for (
    $i $i <= $conteggio $i++) {
                        echo 
    "<table>
                <tr>
                <td colspan=\"2\">tabella num 
    $i per inserimento fattura di : $_SESSION[coddeb]</td>
                </tr>
                <tr>
                <td>numero fattura</td>
                <td><input type=\"text\" name=\"numerofattura[
    $i]\" value=\"\" /></td>
                </tr> 
    ora vorrei effettuare dei controlli su ogni tabella che viene creata. ovviamente i controlli saranno javascript in file esterno

    codice:
    function inviofat(){
    var i = 1;
    var conteggio = document.invio_formconta_conteggiojs.value; //questo prende il valore di $i
    //ciclo le vribili per ogni tabella facendo un controllo per ogni singola tabella creata
    for (i = 1 ; i <= conteggio;i++){
    //inserisco i valori di ogni campo in una variabile in js
    var dato1 = document.getElementsByName("numerofattura[i]");
    var valore1 = dato1.value;
    //eseguo i controlli per ogni variabile (qui ne ho creata una , tanto se non funziona)
    }
    }
    il problema e che non mi valorizza un bel niente , ho provato a mettergli il valore a mano in js è lo prende :
    var valore1 = dato1.value = "ciao";
    il fatto e che dovrebbe prenderlo in automatico al submit.
    allora ho pensato di fare un obrobrio del genere
    valore1 = dato1.value = document.getElementsByName("value");

    ma ovviamente non mi ha dato nulla...

    le variabili me le valorizza con un bel length =0!

    qualcuno ha idee? io le ho terminate. l'unica cosa che tra poco farò e scagliare il pc verso il muro sperando che i caratteri cadendo creino lo script :master:

  2. #2
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    Per la parte in JS posso subito dirti che document.getElementsByName("numerofattura[i]"); non può individuare alcunché;
    "numerofattura[i]" non si traduce in "numerofattura1" "numerofattura2" ecc. ma rimane tal quale e anzi, costituirebbe di per se' un JS NAME con caratteri invalidi: le due [ ]

    Dovresti usare il + di concatenazione stringhe (ha due usi in JS, somma o concatenazione), facendo:

    var dato1 = document.getElementsByName("numerofattura" + i + "");

    o:

    var dato1 = document.getElementsByName("numerofattura" + i);


    (mi devo interrompere ... a dopo)

  3. #3
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    un po come in java che si usa per i 2 scopi.

    il risultato però è lo stasso , se faccio èartire il debug del browser (firefox) mi restituisce questo valore
    dato1 equivale a [ length=0 ]
    non riesco a capire come mai ... ridicendo che uso js per il minimo indispensabile nei miei applicativi!

    volevo porti un acuriosità , java e javascript sono 2 cose differenti; eppure utilizzano gli stessi concetti quando si tratta di linguaggio; per esempio il + e altre cosette che ho notato. La differenza sta solo che js lavora lato client?

    grazie... ciao


    Ho appena provato , ho dovuto modificarla cosi :

    var dato1 = document.forms[nome form].numerofattura+[i];
    cosi facendo mi trona UNDEFINED1.
    se invece metto un valueof() mi torna un bel nulla!
    .... il problema persiste

  4. #4
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    non riesco a capire...
    una volta che faccio:
    var dato1 = document.getElementsByName("nome variabile"+1).value;
    non significa:
    inserisci nella variabile dato1 il valore dell'elemento con name "il nome della variabile" che si trova nel documento...???

    perche il value mi torna NaN oppure null oppure undefined?

    e poi non è molto simile nel dire :

    var dato1 = document.forms['nome form'].nome_variabile+i.value;

    che in parole povere ...

    inserisci il dato1 il valore della variabile che porta il nome [nome variabile] situata nel documento sotto il form [nome del form]??

    dove sbaglio nel ragionamento?

    grazie

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Premesso che non è ben chiaro cosa vuoi fare, il poco che ho capito e che vuoi recuperare la relativa fattura.
    Perché non li passi direttamente nella function inviofat(<? $i ?>) se cosi non fosse possibile, metta il link alla pagina pubblica
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ho n tabelle che vengono generate per inserire dei valori.
    questi valori ovviamente li ho numerati , in php con name="numerofattura[$i]"
    ora dovrei mettere dei controlli , quindi ho passato (nel foglio esterno javascript) la variabile che contiene il numero di quanti cicli sono stati attivati , che lo passo tramite post in un hidden.
    tutti gli altri campi stanno all'interno di un ciclo for.

    tu mi consigli di passare i valori direttamente nel onsubmit.

    quindi

    Codice PHP:
    onSubmit=\"return inviofat($primoelemento$i , $secondoelemento$i)\" //e cosi via? 
    anche se possiedo il ciclo con la dichiarazione sotto??
    cmq grazie del tuo aiuto , io e javascript ci siamo sempre frequentati molto poco ...
    e non è mai stato amore !


  7. #7
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530

    Lettere Numeri e _ (underscore); e non iniziare con numero

    Per quanto concerne la parte in PHP un problema lo troverei nel name in questo:
    Codice PHP:
    echo "
                <td>numero fattura</td>
                <td><input type=\"text\" name=\"numerofattura[
    $i]\" value=\"\" /></td> 
    che ti stampa name="numerofattura[2]" (ispeziona da Browser il Codice HTML della pagina ottenuta).

    Ma le square brackets tornano ad essere invalid characters (invalidi per quanto riguarda il name l' id ecc.) in PHP come già in JavaScript, almeno per le versioni che so'; comunque, questo (salva il file tapu.php o cambia l' action ) così com'è stampa l' HTML come sopra, e NON funziona:
    Codice PHP:
    <?php

    $stampa 
    "
    "
    ;

        if (isset(
    $_POST['invio'])){
          
    $stampa $_POST['numerofattura[2]'];
        };

    echo 
    $stampa ;


    $conteggio 3;

    echo 
    "\n<form action=\"tapu.php\" name=\"invio_formconta\" method=\"post\" onSubmit=\"return inviofat()\">\n";
    echo 
    "
     <input type=\"hidden\" name=\"tipopage\" value=\"fattnew\" />
     <input type=\"hidden\" name=\"conteggiojs\" value=\"
    $conteggio\" />\n";

                    for (
    $i $i <= $conteggio $i++) {

                        echo 
    "\n <table>
                <tr>
                <td colspan=\"2\">tabella num " 
    $i " per inserimento fattura di : xxx</td>
                </tr>
                <tr>
                <td>numero fattura</td>
                <td><input type=\"text\" name=\"numerofattura[" 
    $i "]\" value=\"\" /></td>
                </tr>\n </table>"
    ;

                    };

    echo 
    "\n\n

     <input type=\"submit\" name=\"invio\" value=\"Recupera numero fattura dalla tabella num 2\" />

    </form>"
    ;
                    
    ?>
    Se le togli in:

    $stampa = $_POST['numerofattura2'];
    e
    name=\"numerofattura" . $i . "\"

    FUNZIONA !!!


    Tornando al JS avrai incontrato le parentesi quadre con document.getElementsByName ma in questo modo:

    document.getElementsByName("numerofattura")[0]
    document.getElementsByName("numerofattura")[3]

    che significa, tra una Collection di Elementi tutti con medesimo name="numerofattura" (senza ulteriori numeri/caratteri distintivi) prendiamo in considerazione il primo e il quarto.

    Mi spiace ho dovuto interrompere bruscamente oggi, e ti ho lasciato con
    var dato1 = document.getElementsByName("numerofattura" + i);
    che si traduce nell' intera collection; siccome nel tuo caso c'è un Elemento solo nel Documento con quel name e quello vogliamo recepire, sarà:
    var dato1 = document.getElementsByName("numerofattura" + i)[0];

    Aggiungi questo SCRIPT nel mio esempio sopra (una volta ricorretto), lo piazzi fuori dai Tag <?php e ?> del PHP e editi cambiando valore alla variabile i :
    codice:
    <script type="text/javascript">
    
    function inviofat(){
    
     var i = 2;
     var dato1 = document.getElementsByName("numerofattura" +i)[0];
    
     alert("Recuperi dal campo n. " +i+ ":\n" +dato1.value);
    
     };
    
    </script>
    \n è per andare a capo; c'è anche \t che indenta.

  8. #8
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    A meno che con
    &#160; &#160; &#160; &#160; numerofattura[$i]
    non vuoi riferirti agli articoli di un Array ... :master:
    che già te lo volevo chiedere prima.
    Un Array che avresti compilato a parte.

  9. #9
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    Originariamente inviato da tapu
    ... javascript in file esterno

    codice:
    function inviofat(){
    var i = 1;
    var conteggio = document.invio_formconta_conteggiojs.value; //questo prende il valore di $i
    //fermiamoci qui e controlliamolo con un alert()
    alert(conteggio);
    //ma c'è un _ underscore al posto di un . dot
    //              document.invio_formconta.conteggiojs.value;
    }
    Resta inteso che avrai liberato conteggiojs dai commenti &#60;!-- &#160; --&#62;
    Originariamente inviato da tapu
    .. nella pagina php ho un po di codice html tipo il segurnte
    Codice PHP:
           echo "<form action=\"invio_form.php?id_user=$idus&contins=$conteggio\" name=\"invio_formconta\" method=\"post\" onSubmit=\"return inviofat()\">";
                    echo 
    "<input type=\"hidden\" name=\"tipopage\" value=\"fattnew\" />
                         "
    ;
                    for (
    $i $i <= $conteggio $i++) {
                        echo 
    "<table> 

  10. #10
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    Originariamente inviato da Enzaccio
    Resta inteso che avrai liberato conteggiojs dai commenti &#60;!-- &#160; --&#62;
    si , i commenti li ho giustamente tolti ... _ underscore è il nome della variabile , invio_formconta!

    ora provo a modificare il mio script e ti dico , sei stato esaudiente nella risposta , grazie mille!

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.