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

    Creazione select dinamico

    Buongiorno a tutti
    ho un problema.
    Ho la necessità di creare dei campi select in modo dinamico all'interno di una form e caricarne i contenuti utilizzando ajax.
    Il tutto sembra funzionare correttamente fino a che non faccio la submit: leggendo dalla request non trovo nessun valore relativo alle select generate.
    Mi potete aiutare?

    Di seguito il codice javascript per generare i select:

    codice:
     function addRowToTable()
    {
        var tbl = document.getElementById('aipr');
        var lastRow = tbl.rows.length;
        // if there's no header row in the table, then iteration = lastRow + 1
        var iteration = lastRow;
        
        if (document.getElementById("active_ingr_id"+(iteration-1)).value != 0)
        {
            var row = tbl.insertRow(lastRow);
            //Active Ingredient
            var cell1 = row.insertCell(0);
            var div = document.createElement("div");
            div.id = "activeIngrSel" + iteration;
            var sel = document.createElement('select');
            sel.name = 'active_ingr_id' + iteration;
            sel.id = 'active_ingr_id' + iteration;
            sel.options[0] = new Option('-', '0');
            sel.onchange=function(){loadProduct(this.value,0,iteration);}
            div.appendChild(sel);
            cell1.appendChild(div);
                   
            //Product
            cell1 = row.insertCell(1);
            div = document.createElement("div");
            div.id = "productSel" + iteration;
            sel = document.createElement('select');
            sel.name = 'id_ai_pr' + iteration;
            sel.id = 'id_ai_pr' + iteration;
            sel.options[0] = new Option('-', '0');
            div.appendChild(sel);
            cell1.appendChild(div);
    
            //Strength
            cell1 = row.insertCell(2);
            div = document.createElement("div");
            div.id = "strenghtSel" + iteration;
            sel = document.createElement('select');
            sel.name = 'strength_id' + iteration;
            sel.id = 'strength_id' + iteration;
            sel.options[0] = new Option('-', '0');
            div.appendChild(sel);
            cell1.appendChild(div);
    
            //Route
            cell1 = row.insertCell(3);
            div = document.createElement("div");
            div.id = "routeSel" + iteration;
            sel = document.createElement('select');
            sel.name = 'route_id' + iteration;
            sel.id = 'route_id' + iteration;
            sel.options[0] = new Option('-', '0');
            div.appendChild(sel);
            cell1.appendChild(div);
    
            //Form
            cell1 = row.insertCell(4);
            div = document.createElement("div");
            div.id = "formSel" + iteration;
            sel = document.createElement('select');
            sel.name = 'form_id' + iteration;
            sel.id = 'form_id' + iteration;
            sel.options[0] = new Option('-', '0');
            div.appendChild(sel);
            cell1.appendChild(div);
        }
        return iteration;
    }

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Ciao e benvenuto, a prima vista non imposti un value alle select generate, prova ad aggiungerlo.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    ci vorrebbe l'html interessato: non si sa cosa siano 'active_ingr_id'+numero

  4. #4
    Originariamente inviato da TrueLies
    ci vorrebbe l'html interessato: non si sa cosa siano 'active_ingr_id'+numero
    E' il campo generato precedentemente. Ho messo quel controllo per evitare di far aggiungere una riga nel caso in cui non sia selezionato nessun valore della form precedente.

  5. #5
    Originariamente inviato da cavicchiandrea
    Ciao e benvenuto, a prima vista non imposti un value alle select generate, prova ad aggiungerlo.
    Non credo active_ingr_id sia il prefisso di id di una select - la presenza del ".value" fa pensare che sia qualcos' altro. D'altra parte, le select non hanno un value (le option si, ovviamente) a meno che lui non voglia assegnare a delle select una proprietà spuria "value" per un qualche motivo.

    Sarebbe utile l'html per avere la certezza su cosa, nel contesto di questo script, sia 'active_ingr_id'.

  6. #6
    Originariamente inviato da cavicchiandrea
    Ciao e benvenuto, a prima vista non imposti un value alle select generate, prova ad aggiungerlo.
    ho provato ad aggiungere sel.value = '0' per tutti gli elementi generati ma il risultato non cambia...

  7. #7
    Originariamente inviato da cocco.christian
    E' il campo generato precedentemente. Ho messo quel controllo per evitare di far aggiungere una riga nel caso in cui non sia selezionato nessun valore della form precedente.
    Manda quell' html per favore, facilita tutto se lo mandi (almeno le parti che interessano allo script, ecco)

  8. #8
    presumendo l'html somigli a:

    <table border="2" id="aipr"><tr><td><select id="active_ingr_id0"></select></td></tr></table>

    allora il value non ha senso: gli elementi select non hanno alcuna proprietà value.
    Cosa è per te che deve verificarsi nella prima select (active_ingr_id) affinchè lo script entri nella esprerssione condizionale?

  9. #9
    Questo è l'HTML generato dopo l'inserimento delle 2 righe con le select generate in modo dinamico.


    codice:
    <input type="button" onclick="aggiungiRiga()" value="Add" name="add">
                                                    <input type="button" onclick="eliminaUltimaRiga()" value="Remove" name="remove">
    
                                                    <table cellspacing="1" cellpadding="0" border="1" align="left" width="100%" id="aipr" class="mainFont">
                                                        <tbody><tr>
                                                            <td width="20%">Active ingredient:</td>
                                                            <td width="30%">Product</td>
                                                            <td width="15%">Strength(s)</td>
                                                            <td width="20%">Route</td>
                                                            <td width="15%">Pharmaceutical form</td>
                                                        </tr>
                                                        <tr>
                                                            <td>
                                                                <div id="activeIngrSel1">
                                                                    <select onchange="javascript:loadProduct(this.value,0,1);" id="active_ingr_id1" name="active_ingr_id1">
                                                                        <option value="0">-</option>
                                                                                                                                                <option value="12">...</option>
              
                                                                                                                                        </select>
                                                                </div>
                                                            </td>
                                                            <td>
                                                                <div id="productSel1">
                                                                    <select id="id_ai_pr1" name="id_ai_pr1"><option value="0">-</option>
    <option value="50">...</option>
    </select>
                                                                </div>
                                                            </td>
                                                            <td>
                                                                <div id="strengthSel1">
                                                                    <select id="strength_id1" name="strength_id1">
                                                                        <option value="0">-</option>
                                                                           <option value="9">...</option>
                                                                                                                                        </select>
                                                                </div>
                                                            </td>
                                                            <td>
                                                                <div id="routeSel1"><select id="route_id1" name="route_id1">
                                                                        <option value="0">-</option>
                                                                    <option value="16">...</option>
                                                                                                                                        </select>
                                                                </div>
                                                            </td>
                                                            <td>
                                                                <div id="formSel1">
                                                                    <select id="form_id1" name="form_id1">
                                                                        <option value="0">-</option>
                       <option value="13">...</option>
                                                                                                                                        </select>
                                                                </div>
                                                            </td>
                                                        </tr>
                                                    <tr>
    <td>
    <div id="activeIngrSel2">
    <select name="active_ingr_id2" id="active_ingr_id2">
    <option value="0">-</option>
    <option value="14">...</option>
    </select>
    </div>
    </td>
    <td>
    <div id="productSel2">
    <select name="id_ai_pr2" id="id_ai_pr2">
    <option value="0">-</option>
    <option value="91">...</option>
    </select>
    </div>
    </td>
    <td>
    <div id="strenghtSel2">
    <select name="strength_id2" id="strength_id2">
    <option value="0">-</option>
    <option value="20">...</option>
    </select>
    </div>
    </td>
    <td>
    <div id="routeSel2">
    <select name="route_id2" id="route_id2">
    <option value="0">-</option>
    <option value="16">...</option>
    </select>
    </div>
    </td>
    <td>
    <div id="formSel2">
    <select name="form_id2" id="form_id2">
    <option value="0">-</option>
    <option value="13">...</option>
    </select>
    </div>
    </td>
    </tr>
    </tbody>
    </table>

  10. #10
    Originariamente inviato da TrueLies
    presumendo l'html somigli a:

    <table border="2" id="aipr"><tr><td><select id="active_ingr_id0"></select></td></tr></table>

    allora il value non ha senso: gli elementi select non hanno alcuna proprietà value.
    Cosa è per te che deve verificarsi nella prima select (active_ingr_id) affinchè lo script entri nella esprerssione condizionale?
    Il controllo funziona in modo corretto...l'ho verificato.
    Il problema è a posteriori ossia quando invio il modulo.
    In richiesta sembrano non esistere tutti i campi generati dinamicamente in javascript...

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