Въпрос за <select>...

RiddleR

Registered
Здравейте, мъча се от сума ти време, но до резутлат така и не стигам.
Става на въпрос за това, примерно имаме един select :

HTML:
<select>
<option value="">– Please select –</option>
<option value="0">Less than 1</option>
<option value="1">1</option>       
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option> 
<option value="5">5</option> 
<option value="6">6</option> 
<option value="7">7</option> 
<option value="8">8</option> 
<option value="9">9</option> 
<option value="10">10+</option>
</select>


как може, при натискането на 1,2,3,4 или някои друг option,
ако посетителя е цъкнал на option 5 примерно, да му отвори 5 инпута ?
или ако е на 1 да е един?
 
HTML:
<select NAME='sel'>
 <option value='4'>4 инпута</option>
 <option value='8'>8 инпута</option>
 <option value='10'>10 инпута</option>
</select>

PHP:
$sel = (int)$_POST['sel'];
if($sel  != 0)
{
    for($i=0;$i<$sel$i++)
    {
       echo " Инпут ".$i." <br/>";
    echo " <input type='text' name='input-".$i."' value='".$i."' /> <br/><br/>";
    }
}
:idea: :?: :?:
 
Или нещо с javascript:

http://jsfiddle.net/V96wu/2/

JS (за твоя html):
Код:
$(document).ready(function() {
    $("select").change(function() {
        var inputCount = $(this).find('option:selected').val();
        var formContent = ''
        for(i = 0; i < inputCount; i++)
        {
            formContent += '<input type="text" name="input_'+i+'" />';
        }
        $('form').html(formContent);
    });

});
 
Или ако ти трябва да е с javascript - click

[js]window.onload = function () {
var div_with_inputs = document.getElementById('div_with_inputs');
document.getElementsByTagName('select')[0].onchange = function () {
div_with_inputs.innerHTML = '';
for(var i = 0; i < parseInt(this.value); i++)
div_with_inputs.innerHTML += '<input /><br>';
}
}[/js]

Кажи ако искаш при 10+ да има бутон "добави поле".

П.п. тва на fakeheal не го бях видял. Все пак двете не са еднакви (не ползвам jquery), така че не е нужно да го изтрия.
 

Back
Горе