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

    Problema valorizzazione campo hidden da foreach

    ciao!

    ho un form, con un campo hidden valorizzato da db, che tramite tasto devo mandare ad un'altra pagina.
    in pratica:
    Codice PHP:
    <form action="dispatch_print_bs.php" method="get" target="_blank">
        <?php foreach ($query as $a): ?>
            <button type="submit" name="coll" value="<?php echo $collezione?>">
                <span class="glyphicon glyphicon glyphicon-print"></span> Stampa
            </button>
            <input type="hidden" name="forn" value="<?php echo $a['bs_fornitore_codice']; ?>">
        <?php endforeach; ?>
    </form>
    il problema è che lo script di destinazione si prende sempre l'ultimo valore impostato nel foreach.
    come posso fare per passargli il valore che mi interessa??

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Devi mettere una form per ogni button submit.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Devi mettere una form per ogni button submit.
    si lo immaginavo.
    solo che dovevo stravolgere tutto, e speravo ci fosse un'altra soluzione!

    in pratica, nel form prima del foreach, ci stanno anche questi valori da passare, che non mi devo riportare nel ciclo (nel senso che non ho spazio per metterli in ogni form, la visualizzazione della pagina farebbe schifo):
    codice:
    <div class="pull-left" style="margin-right: 20px;">
            <button type="submit" name="coll" class="btn btn-default-black" value="<?php echo $collezione; ?>">
                <span class="glyphicon glyphicon glyphicon-print"></span> Stampa
            </button>
            <input name="pt" type="radio" value="230"> A3
            <input name="pt" type="radio" value="150" checked> A4
        </div>
        <div class="pull-left">
            <input name="qta_tipo" type="radio" value="pz" checked> Pz
            <input name="qta_tipo" type="radio" value="perc"> %
        </div>
    ecco perchè avevo pensato ad un form unico!
    Ultima modifica di fermat; 26-01-2017 a 10:21

  4. #4
    in pratica, questo è il form completo:
    codice:
    <form action="dispatch_print_bs.php" method="get" target="_blank">
        <div class="pull-left" style="margin-right: 20px;">
            <button type="submit" name="coll" class="btn btn-default-black" value="<?php echo $collezione; ?>">
                <span class="glyphicon glyphicon glyphicon-print"></span> Stampa
            </button>
            <input name="pt" type="radio" value="230"> A3
            <input name="pt" type="radio" value="150" checked> A4
        </div>
        <div class="pull-left">
            <input name="qta_tipo" type="radio" value="pz" checked> Pz
            <input name="qta_tipo" type="radio" value="perc"> %
        </div>
        <?php foreach ($query as $a): ?>
            <button type="submit" name="coll" value="<?php echo $collezione; ?>">
                <span class="glyphicon glyphicon glyphicon-print"></span> Stampa
            </button>
            <input type="hidden" name="forn" value="<?php echo $a['bs_fornitore_codice']; ?>">
        <?php endforeach; ?>
    </form>
    senza dover ripetere ogni volta la parte prima del foreach, come posso passare quei valori??

  5. #5
    l'unica soluzione che mi viene in mente, su due piedi, è che:
    - metto un form per ogni voce, mettendo pure quella parte nascosta
    - quando cambio il valore nella parte "comune", tramite javascript imposto i valori di tutti i form sottostanti

    in questo modo dovrebbe funzionare...

  6. #6
    al momento ho seguito questa strada.

    quindi una cosa del genere:
    codice:
    <script>
        function setPrintOpts(componente, valore) {
            componente.each(function () {
                $(this).val(valore);
            });
        }
    </script>
    <form action="<?php echo BASE_URL_CRONOS; ?>admin/dispatch_print_bs.php" method="get" target="_blank">
        <div class="pull-left" style="margin-right: 20px;">
            <button type="submit" name="coll" class="btn btn-default-black" value="<?php echo $collezione; ?>">
                <span class="glyphicon glyphicon glyphicon-print"></span> Stampa
            </button>
            <input name="pt" type="radio" value="230" onchange="setPrintOpts($('input[type=radio][name=pt]:checked'), $(this).val());"> A3
            <input name="pt" type="radio" value="150" onchange="setPrintOpts($('input[type=radio][name=pt]:checked'), $(this).val());" checked> A4
        </div>
        <div class="pull-left">
            <input name="qta_tipo" type="radio" value="pz" onchange="setPrintOpts($('input[type=radio][name=qta_tipo]:checked'), $(this).val());" checked> Pz
            <input name="qta_tipo" type="radio" value="perc" onchange="setPrintOpts($('input[type=radio][name=qta_tipo]:checked'), $(this).val());"> %
        </div>
        <div class="clearfix"></div>
    </form>
    <?php foreach ($query as $a): ?>
                 
                    <form action="<?php echo BASE_URL_CRONOS; ?>admin/dispatch_print_bs.php" method="get" target="_blank">
                        <?php echo $a['bs_fornitore_descrizione'] . ' - ' . $a['ord'] . ' PZ'; ?> - 
                        <div class="hidden">
                            <div class="pull-left" style="margin-right: 20px;">
                                <button type="submit" name="coll" class="btn btn-default-black" value="<?php echo $collezione; ?>">
                                    <span class="glyphicon glyphicon glyphicon-print"></span> Stampa
                                </button>
                                <input name="pt" type="radio" value="230"> A3
                                <input name="pt" type="radio" value="150" checked> A4
                            </div>
                            <div class="pull-left">
                                <input name="qta_tipo" type="radio" value="pz" checked> Pz
                                <input name="qta_tipo" type="radio" value="perc"> %
                            </div>
                            <div class="clearfix"></div>
                        </div>
                        <button type="submit" name="coll" class="btn btn-sm btn-default-black" value="<?php echo $collezione; ?>">
                            <span class="glyphicon glyphicon glyphicon-print"></span> Stampa
                        </button>
                        <input type="hidden" name="forn" value="<?php echo $a['bs_fornitore_codice']; ?>">
                    </form>
    <?php endforeach; ?>
    ho fatto varie e prove e sembra funzionare tutto.

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Secondo me puoi creare dei campi hidden vuoti in ogni form che corrispondono ai campi "comuni". Al momento del submit assegni i valori comuni ai campi hidden.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Secondo me puoi creare dei campi hidden vuoti in ogni form che corrispondono ai campi "comuni". Al momento del submit assegni i valori comuni ai campi hidden.
    eh si, più o meno è quello che ho fatto tramite jquery alla fine!
    non penso ci siano altre soluzioni!!

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.