Codeigniter从数组字段中获取表单字段值不起作用

时间:2015-12-03 04:40:00

标签: php arrays forms codeigniter

我希望在我的视图中获得post fields值,但是所有表单都没有得到值,当我点击提交按钮时,我在表单中获得一个“数组”字符串。

enter image description here

我在array =>中声明了字段控制器

$data6 = array(
     'no_lab'                    => $no_lab[$i],
     'low_sampling'              => $low_sampling[$i],
     'sampling_point'            => $sampling_point[$i],
     'sampling_tgr'              => $sampling_tgr[$i],
     'sampling_clk'              => $sampling_clk[$i],
     'sampling_analys'           => $sampling_analys[$i],
     'shift'                     => $shift[$i]
 );

在我的查看中,我设置了“set_value('array []')”,就像这样:

<td>
   <input type="text" name="no_lab[]" id="no_lab" value="<?php echo set_value('no_lab[]'); ?>" required/></td>
<td>
   <input type="text" name="low_sampling[]" id="low_sampling" value="<?php echo set_value('low_sampling[]'); ?>"/></td>
<td>
   <input type="text" name="sampling_point[]" id="sampling_point" size="17" value="<?php echo set_value('sampling_point[]'); ?>"/></td>
<td>
   <input type="text" name="sampling_tgr[]" id="sampling_tgr" value="<?php echo set_value('sampling_tgr[]'); ?>"/></td>
<td>
   <div class="input-group clockpicker col-sm-12" data-autoclose="true" data-time-format="HH:mm">
     <input type="text" name="sampling_clk[]" id="sampling_clk" value="<?php echo set_value('sampling_clk[]'); ?>" required/>
       <span class="input-group-addon">
       <span class="glyphicon glyphicon-time"></span></span>
   </div>
</td>
<td>
   <input type="text" name="sampling_analys[]" id="sampling_analys" value="<?php echo set_value('sampling_analys[]'); ?>"/></td>

参考CI重新填充表单:https://www.codeigniter.com/user_guide/libraries/form_validation.html

所以,我做错了吗?我是CI的新手。

3 个答案:

答案 0 :(得分:1)

数组的Print_r返回一个值。所以让你的$ a = set_value('no_lab []');.因此$ a是数组。我认为count($ a)返回1,因此我使用echo $ a [0];现在尝试代码

<td>
<input type="text" name="no_lab[]" id="no_lab" value="<?php $a=set_value('no_lab[]'); echo $a[0]; ?>" required/></td>
<td>
<input type="text" name="low_sampling[]" id="low_sampling" value="<?php  $a=set_value('low_sampling[]');echo $a[0];  ?>"/></td>
<td>
<input type="text" name="sampling_point[]" id="sampling_point" size="17" value="<?php $a= set_value('sampling_point[]');echo $a[0];  ?>"/></td>
<td>
<input type="text" name="sampling_tgr[]" id="sampling_tgr" value="<?php $a= set_value('sampling_tgr[]'); echo $a[0]; ?>"/></td>
<td>
<div class="input-group clockpicker col-sm-12" data-autoclose="true" data-time-format="HH:mm">
<input type="text" name="sampling_clk[]" id="sampling_clk" value="<?php $a= set_value('sampling_clk[]');echo $a[0];  ?>" required/>
<span class="input-group-addon">
<span class="glyphicon glyphicon-time"></span></span>
</div>
</td>
<td>
<input type="text" name="sampling_analys[]" id="sampling_analys" value="<?php $a=set_value('sampling_analys[]');echo $a[0];  ?>"/></td>

答案 1 :(得分:0)

只需使用

<?php echo set_value('no_lab','default value'); ?>

//get the first element of array
echo '<input name="no_lab" id="no_lab" class="no_lab" value="'.$no_lab[0].'" >';
// OR
echo '<input name="no_lab" id="no_lab" class="no_lab" value="'.$no_lab.'" >';

foreach ($no_lab as $nl){
    echo '<input name="no_lab['.$nl.']" id="no_lab_'.$nl.'" class="no_lab" value="'.$nl.'" >';
}

答案 2 :(得分:0)

当使用数组作为表单字段的名称,然后将其作为数组提供给set_value函数时,我遇到了类似的问题。我无法使用相应的值重新填充每个表单字段。

建立Vigneswaran关于将for($i = 0; $i < 2; $i++) { $a = set_value('ingredients['.$i.']'); echo form_input('ingredients[]', $a, TRUE); } 函数的结果赋给变量的建议,然后我使用循环计数器作为数组键来访问表单字段中的每个值。

<input type="text" name="ingredients[] value="form_input_1">
<input type="text" name="ingredients[] value="form_input_2">

使用示例值属性输出:

var score = 0; 

var submit = document.getElementById('submit'); 

submit.addEventListener('click', function quiz(){
var radio1 = document.querySelector('input[name="selection"]:checked').value;
var answers = ['Yellow', 'Donald trump', 'Michael Jackson', 'red', 'Oscar'];

console.log(radio1);
	if(radio1 === answers[0]) {
  	document.getElementById('results').innerHTML = "yes thats correct";
  }else{
  	alert('nope');
  }
});