我想要做的是创建一个根据用户选择的内容创建字段的功能
例如;
<select name="ex">
<option selected="selected" value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
如果用户选择了4,我希望能够显示4个输入字段
我的问题是,我将如何构建一个可以执行此操作的查询?
我惹恼了我的大脑,我能想到的就是
if($ex='4') {
<input type="text" name="field4">
<input type="text" name="field4">
<input type="text" name="field4">
<input type="text" name="field4">
}
但必须有一种更简单的方式来显示它们。有什么想法吗?
答案 0 :(得分:5)
如果使用for
循环会更容易,如下所示:
for($i=1;i<=$ex;$i++){
echo "<input type='text' name='field4[]'>";
}
我希望它有所帮助。
答案 1 :(得分:3)
您甚至可以使用javascript:http://jsfiddle.net/fudQF/
动态执行此操作的使用Javascript:强> 的
showFields(t) {
f = document.getElementById('fields');
while (f.childNodes.length >= 1)
f.removeChild(f.firstChild);
for(i = 0; i < t.value; i++) {
e = document.createElement('input');
e.setAttribute('type','text');
f.appendChild(e);
e = document.createElement('br');
f.appendChild(e);
}
}
的 HTML:强> 的
<select name="ex" onClick="showFields(this)">
<option selected="selected" value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<div id="fields">
</div>
答案 2 :(得分:1)
for($i=0;$i<$ex;$i++)
{echo '<input type="text" name="field'.$i.'">';}
试试这个 您可以使用选择
中的javascript中的onchange函数来执行此操作function chang()
{
for(var i=1;i<document.getElementById("select_id").value;i++)
document.body.innerHTML+='<input type="text" name="field"'+i+'>';
}
答案 3 :(得分:1)
for($i = 0; $ < 4; $i++)
{
echo "<input type=\"text\" name=\"field".($i + 1)."\">";
}
答案 4 :(得分:1)
for ($i=1; $i<=$ex; $i++)
{
echo "<input type=\"text\" name=\"field".$i."\">";
}
它会为您的字段指定唯一的名称
答案 5 :(得分:0)
if
语句似乎是PHP(变量前的美元符号)..我猜你想要回显或保存输出的变量。
一种方法是使用重复的语句(for,while)来做你需要的次数。
基于您似乎使用完全相同的输出这一事实的另一个选项是使用str_repeat()
函数。
这看起来有点奇怪..也许你希望这个名字是 field4[]
,而不仅仅是 field4
答案 6 :(得分:0)
假设$ ex = 4
$ex=4;
for($C=1;$C<=$ex;$C++){ echo "<input type=\"text\" name=\"field".$C."\" />"; }
答案 7 :(得分:0)
构建于an existing answer - jQuery可以进一步降低所需的代码量 -
<强> HTML 强>
<select name="ex" onClick="showFields(this)">
<option selected="selected" value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<div id="fields">
</div>
<强>的jQuery 强>
$("select[name='ex']").on('change',function(){
var selectedVal = $(this).val();
$("#fields").html(''); // clear existing input fields (possibly from previous selection)
for (var i=1; i<=selectedVal; i++){
$("#fields").append('<input type="text" name="field'+i+'">');
}
});