Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: Select option multple

  1. #1
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494

    Select option multple

    Salve,
    dovrei prendere dei dati da un form composto da dei select generati tramite jquery:

    javascript:
    codice:
    var count = 0;
    $(function () {
        $('p#add_field').click(function () {
            count += 1;
            $('#container').append('<strong>Select ' + count + '</strong><br />
    <select name="fields[]><option>1</option><option>2</option><option>3</option></select>');
        });
    });
    <form name="test" method="post" action="invio.php">
    <select name="fields[]>
    <option>1</option>
    <option>2</option><option>3</option>
    </select>
    
    <div id="container">
    
    <p id="add_field"><a href="#">Aggiungi select</a></p>
    
    
    </div>
    
    <button type="submit">Invia</button>
    </form>
    Invio tutto al file invio.php per estrarre i dati:

    Codice PHP:
    foreach ($_POST['fields'] as $value) {    echo "Value: $value<br />\n";} 
    In questo modo mi stampa solo il primo e non gli altri generati. Avete qualche idea?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Prova a fare
    print_r($_POST['fields']);

    al posto del ciclo, vedrai come arrivano i dati e ti renderai conto come eseguire correttamente il ciclo.

  3. #3
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Facendo il print_r mi passa sempre e solo il primo select, quelli generati non li passa:

    Array ( [0] => 1)

    se provo a cambiare name ai select generati tramite jquery mi restituisce
    Undefined index: fields2
    Ultima modifica di lukezz; 07-04-2015 a 09:55

  4. #4
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    dopo fileds[] manca " hai incollato male?
    Ultima modifica di linoma; 07-04-2015 a 10:26
    Per gli Spartani e Sparta usa spartan Il mio github

  5. #5
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Provato il tuo codice proprio adesso...e funziona (chrome). L'unico problema è che non chiudi l'apice del name della select (sia nel html che nel js)

  6. #6
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Errore mio scusate, continuavo a guardare un file errato.

    Il codice javascript per generare i div è questo:

    codice:
    $(function () {
        var scntDiv = $('#p_scents');
        var i = $('#p_scents').size() + 1;
    
    
        $('#addScnt').live('click', function() {
            $('<p><strong>Select ' + count + '</strong><br />
    <select name="fields[]><option>1</option><option>2</option><option>3</option></select><a href="#" id="remScnt" style="padding:10px">rimuovi ↑</a></p>').appendTo(scntDiv);
            i++;
            return false;
        });
    
    
        $('#remScnt').live('click', function() {
            if (i > 2) {
                $(this).parents('p').remove();
                i--;
            }
            return false;
        });
    });
    html:
    codice:
    <form name="test" method="post" action="dbsql/add/invio.php" enctype="multipart/form-data">
    <div id="p_scents">
    <p>
    <select name="fields[]">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    </select>
    </p></div>
    
    
    <a href="#" id="addScnt">Aggiungi select</a>
    
    
    <button type="submit">Invia</button>
    </form>
    
    Infatti cosi  con il print_r mi da solo un array e non quelli generati

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Continui a non chiudere l'attributo name nel javascript

    <select name="fields[]><option>1</option>

    manca " dopo fields[]

  8. #8
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Si lo chiudo, scusa ma nello scrivere ho dimenticato qualche apice, ma solo qui sul forum.
    Allora penso di aver capito qual'è il problema ma non la soluzione. Ho una pagina abbastanza grande di registrazione con molti input select ecc.. in questa pagina non riesco a passare tutto ciò che è multiplo "array[]" quindi un select o un checkbox. Se provo a passare i dati solo con il select in questione ad esempio, funziona. Da cosa può dipendere? dal codice html? troppi div? (e il form si confonde)

    L'unica soluzione che ho già adoperato su un altra pagina è quello di fare un form a parte solo per le selezioni multiple, ma qui, per esigenze non posso mettere più di un form.

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Con il codice che hai postato, cliccando su "Aggiungi select", viene aggiunto un nuovo campo select?
    Io sto provando il tuo codice e ci sono diversi errori: funzione live non definita, variabile count non inizializzata...

  10. #10
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Si si, mi aggiungi un nuovo campo uguale a quello di default che già c'è, tutto corretto con name="fields[]" solo che quelli generati non passano, ma non perchè sono stati generati ma perchè secondo me il problema è un altro. Esempio, se metto una sola select, con selezione multiple quindi con array[], funziona, ma se metto più tag select con name=fields[] ad esempio, non passa niente, questo succede anche con le checkbox. Però solo sulla pagina piena di altri input ecc.. Se dovessi fare la prova su una pagina solo con quei select multipli, i dati vengono passati come array al php.

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.