Javascript codeigniter:来自最后一个文本字段的值会重复自身,或者不会从文本字段中获取值
我选择2个文本字段,在第一个文本字段中输入'alpha',在'beta'中输入第二个。当我在下一页显示它时,它只显示第二个值,即“beta”。我的代码有什么问题?我已经为保存数据的变量设置了foreach 这是表单的视图。jscriptJavascript codeigniter:来自最后一个文本字段的值会重复自身,或者不会从文本字段中获取值,javascript,codeigniter,Javascript,Codeigniter,我选择2个文本字段,在第一个文本字段中输入'alpha',在'beta'中输入第二个。当我在下一页显示它时,它只显示第二个值,即“beta”。我的代码有什么问题?我已经为保存数据的变量设置了foreach 这是表单的视图。jscript <script type="text/javascript"> $(document).ready(function() { $('#bookinfo_adult').change(functi
<script type="text/javascript">
$(document).ready(function() {
$('#bookinfo_adult').change(function(){
var num = $('#bookinfo_adult').val();
var i = 0;
var html = '';
for (i=1;i<=num;i++) {
html += 'Adult ' + i + ': <input type="text" name="passenger-' + i + '"/><br/>';
}
$('#List').html(html);
});
});
</script>
这是表格
Adult:
<select id="bookinfo_adult" name="bookinfo_adult">
<option value="0">- SELECT -</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>
</select>
<div id="List"></div>
这是控制器
for ($i=1;$i<=$data['num'];$i++) {
//concatinate number of fields to a variable
$name=array();
$name=$this->input->post('passenger-'.$i);
$value=array();
$value='val'.$i;
$data['bookinfo_passengers']=array();
$data['bookinfo_passengers']=array($value=>$name);
}
这是我的显示视图上的内容
for($a=1;$a<=$num;$a++){
foreach($bookinfo_passengers as $value=>$name)
{
echo $value.'='.$name;
}
}
每次循环都要重新启动阵列,并用新数据覆盖旧数据:
for ($i=1;$i<=$data['num'];$i++) {
//concatinate number of fields to a variable
$name=array();
$name=$this->input->post('passenger-'.$i);
$value=array();
$value='val'.$i;
$data['bookinfo_passengers']=array(); ---> **put this outside of the loop**
$data['bookinfo_passengers']=array($value=>$name); ---> this will override the previous data.
}
您认为问题出在哪里?您从视图中获得的确切输出是什么?分析视图时,通常输出应该是val1=alpha val2=beta,没有额外的空间。你得到了什么?嗨,先生,我得到了val2=betava2=beta。这已经困扰了我好几个小时了。感谢您讲述和解释:
$data['bookinfo_passengers']=array();
$tmp = array();
for ($i=1;$i<=$data['num'];$i++) {
//concatinate number of fields to a variable
$name=array();
$name=$this->input->post('passenger-'.$i);
$value=array();
$value='val'.$i;
$tmp[$value] = $name;
}
$data['bookinfo_passengers']=$tmp;
foreach($data['bookinfo_passengers'] as $value=>$name)
{
echo $value.'='.$name;
}