• User

    Convertire funzione checkbox in select

    ciao, ho bisogno di un'aiuto
    vorrei modificare questa funzione in modo che nel form appaia un campo select anzichè tanti checkbox
    grazie

    $i = 0;

                foreach ($this->serverList as $value) {
    
                    if ($value['check'] == true) $checked=" checked='checked' ";
    
                    else $checked = " ";
    
                    
    
                    echo '<td><input type="checkbox" name="tld_'.$value['tld'].'"'.$checked.' />.'.$value['tld'].'</td>';
    
                    $i++;                    
    
                    if ($i > 4) {
    
                        $i = 0;
    
                        echo '</tr><tr>';

  • ModSenior

    Cioè se te hai tipo 5 checkbox.

    C1="Valore1"
    C2="Valore2"
    C3="Valore3"
    C4="Valore4"
    C5="Valore5"

    E Attivo 1,3,5.

    Deve comparire una select con Valore1,Valore3,Valore5?


  • User

    si, esattamente


  • ModSenior

    Una cosa del genere?

    [php]
    <html>
    <head>
    <title>Test</title>
    <script type="text/javascript">
    function generaSelect(voci)
    {
    var mySelect = document.getElementById('selezione-label');
    var stringa="";
    for(indice=0;indice<voci.length;indice++)
    {
    if(voci[indice].checked==true)
    {
    stringa+="<option value="+voci[indice].value+">"+voci[indice].value+"</option>";
    }
    }
    mySelect.innerHTML="<select id='selezione' name='selezione'>"+stringa+"</select>";
    }
    </script>
    </head>
    <body>
    <form id="form" name="form">
    <div><input type="checkbox" name="voci" id="voci" onclick="generaSelect(document.form.voci)" value="Valore 1"> Valore 1</div>
    <div><input type="checkbox" name="voci" id="voci" onclick="generaSelect(document.form.voci)" value="Valore 2"> Valore 2</div>
    <div><input type="checkbox" name="voci" id="voci" onclick="generaSelect(document.form.voci)" value="Valore 3"> Valore 3</div>
    <div><input type="checkbox" name="voci" id="voci" onclick="generaSelect(document.form.voci)" value="Valore 4"> Valore 4</div>
    <div><input type="checkbox" name="voci" id="voci" onclick="generaSelect(document.form.voci)" value="Valore 5"> Valore 5</div>
    <div>SELEZIONE
    <label id="selezione-label">
    <select id="selezione" name="selezione"></select>
    </label>
    </div>
    </form>
    </body>
    </html>
    [/php]


  • User

    no, il checkbox devo eliminarlo completamente e al suo posto avere solo il select
    per capirci meglio devo trasformarlo in una cosa del genere solo che così com'è sotto mi crea tanti select quanti erano i checkbox, io vorrei avere un solo select

    function tldListH(){
    $i = 0;
    foreach ($this->serverList as $value) {
    if ($value['check'] == true) $checked=" checked='checked' ";
    else $checked = " ";

                    echo '<td><select><option value='.$value['tld'].'>'.$value['tld'].'</option></td>'; 
                    $i++;                     
                    if ($i > 4) { 
                        $i = 0; 
                        echo '</tr><tr>'; 
                    } 
                } 
    

    }


  • ModSenior

    Ma cosi una volta checcati non spariscono?
    E se voglio tirarlo via dalla select?

    Quindi alla fine non è come ora solo che bisogna anche eliminare/non visualizzare la checkbox che viene abilitata?


  • User

    esattamente, vorrei eliminare completamente la checkbox e sostituirla con il select, solo che non riesco a capire come fare


  • User

    lo script che voglio modificare è questo

    whois.soft64download.com


  • ModSenior

    Una versione del genere?

    [PHP]
    <html>
    <head>
    <title>Test</title>
    <script type="text/javascript">
    function generaSelect(voci)
    {
    var mySelect = document.getElementById('selezione-label');
    var stringa="";
    for(indice=0;indice<voci.length;indice++)
    {
    if(voci[indice].checked==true)
    {
    stringa+="<option value="+voci[indice].value+">"+voci[indice].value+"</option>";
    var divContenitore=document.getElementById('div'+(indice+1));
    divContenitore.style.display="none";
    }
    }
    mySelect.innerHTML="<select id='selezione' name='selezione'>"+stringa+"</select>";
    }
    </script>
    </head>
    <body>
    <form id="form" name="form">
    <div id="div1"><input type="checkbox" name="voci" id="voci" onclick="generaSelect(document.form.voci)" value="Valore 1"> Valore 1</div>
    <div id="div2"><input type="checkbox" name="voci" id="voci" onclick="generaSelect(document.form.voci)" value="Valore 2"> Valore 2</div>
    <div id="div3"><input type="checkbox" name="voci" id="voci" onclick="generaSelect(document.form.voci)" value="Valore 3"> Valore 3</div>
    <div id="div4"><input type="checkbox" name="voci" id="voci" onclick="generaSelect(document.form.voci)" value="Valore 4"> Valore 4</div>
    <div id="div5" ><input type="checkbox" name="voci" id="voci" onclick="generaSelect(document.form.voci)" value="Valore 5"> Valore 5</div>
    <div>SELEZIONE
    <label id="selezione-label">
    <select id="selezione" name="selezione"></select>
    </label>
    </div>
    </form>
    </body>
    </html>
    [/PHP]


  • User

    no, niente del genere

    io vorrei che automaticamente i dati finissero nel select, senza più vedere un solo checkbox


  • ModSenior

    Dai prima o poi ci arriviamo... 😄
    Scusa sto facendo altre cose e non leggendo bene...

    [PHP]
    <html>
    <head>
    <title>Test</title>
    <script type="text/javascript">
    function creaSelect(voci)
    {
    var mySelect = document.getElementById('selezione-label');
    var stringa="";
    for(indice=0;indice<voci.length;indice++)
    {
    stringa+="<option value="+voci[indice].value+">"+voci[indice].value+"</option>";
    var divContenitore=document.getElementById('div'+(indice+1));
    divContenitore.style.display="none";
    }
    mySelect.innerHTML="<select id='selezione' name='selezione'>"+stringa+"</select>";
    }
    </script>
    </head>
    <body onload="creaSelect(document.form.voci)">
    <form id="form" name="form">
    <div id="div1"><input type="checkbox" name="voci" id="voci" value="Valore 1"> Valore 1</div>
    <div id="div2"><input type="checkbox" name="voci" id="voci" value="Valore 2"> Valore 2</div>
    <div id="div3"><input type="checkbox" name="voci" id="voci" value="Valore 3"> Valore 3</div>
    <div id="div4"><input type="checkbox" name="voci" id="voci" value="Valore 4"> Valore 4</div>
    <div id="div5"><input type="checkbox" name="voci" id="voci" value="Valore 5"> Valore 5</div>
    <div>SELEZIONE
    <label id="selezione-label">
    <select id="selezione" name="selezione"></select>
    </label>
    </div>
    </form>
    </body>
    </html>
    [/PHP]


  • User

    tranqui, anzi, grazie

    si qualcosa del genere
    anche se preferirei, se fosse possibile, eliminare del tutto o checkbox e richiamare i dati con il select


  • User

    risolto, grazie

    function tldListH(){

                $i = 0;
    echo '<tr><td><select name="tld_com">'; 
                foreach ($this->serverList as $value) {
    
                    if ($value['check'] == true) $checked=" checked='checked' ";
    
                    else $checked = " "; 
                     
                    echo '<option value='.$value['tld'].'>'.$value['tld'].'</option>'; 
                    $i++;                     
                    if ($i > 100) { 
                        $i = 1; 
                        echo '</select></td><t/r>'; 
                    } 
                } 
    

    }


  • User

    non è vero, non ho risolto, in realtà funziona solo la ricerca di tld_com, questo perchè viene richiamato in <select name="tld_com">, infatti se lo sostituisco con <select name="tld_it"> allora funziona la ricerca solo sul tld_it, le altre estensioni non vengono proprio considerate.

    allora ho provato a fare così,
    <select name="tld_'.$value['tld'].'">
    ma nienete da fare comunque, qualche consiglio?, grazie


  • User Attivo

    Ciao, scusa la mia ignoranza, se tu conosci già i campi, perchè non li metti prima in un array e poi li schiatti nella select?

    Penso di aver capito bene? O forse no

    Ciao da danny