Codeigniter 如何重新填充使用java脚本动态生成的表单表行

Codeigniter 如何重新填充使用java脚本动态生成的表单表行,codeigniter,Codeigniter,我有一个输入表单,用于指定关于“志愿者”的信息。志愿者可以是一个人或一群人。在表单的底部有一个复选框,当信息是关于一组人时,该复选框被选中。选中后,我使用jquery显示一个DIV,该DIV最初只有一行表,可以在其中输入关于组中其他成员的信息 用户可以单击图像来触发jquery脚本函数,该函数将动态地向表中添加一行 我的问题是,如果由于验证错误而必须重新显示表单,我无法确定如何重新填充行中的值。因为我是用脚本生成HTML的,所以我不能输入PHP代码,因为它在加载页面时会被解释 也许有更好的方法来

我有一个输入表单,用于指定关于“志愿者”的信息。志愿者可以是一个人或一群人。在表单的底部有一个复选框,当信息是关于一组人时,该复选框被选中。选中后,我使用jquery显示一个DIV,该DIV最初只有一行表,可以在其中输入关于组中其他成员的信息

用户可以单击图像来触发jquery脚本函数,该函数将动态地向表中添加一行

我的问题是,如果由于验证错误而必须重新显示表单,我无法确定如何重新填充行中的值。因为我是用脚本生成HTML的,所以我不能输入PHP代码,因为它在加载页面时会被解释

也许有更好的方法来完成这整件事,我愿意接受建议,但我现在有了这些建议

提前感谢您的帮助

下面是添加新行的jQuery脚本:

function addMember() {  
  var $counter = parseInt($("#rowCounter").val());  
  if ($counter > 1) {  
    var $firstName = "#firstName"+$counter;  
    var $lastName = "#lastName"+$counter;  
    var $email = "#email"+$counter;  
    if ($($firstName).val() == "" && $($lastName).val() == "" && $($email).val() == "") {  
      alert("You must fill out member row before adding another!");  
      return false;  
    }  
  }  
  $memberRowNum = $counter;  
  $counter+=1;  
  var $appendVal = '<tr><td>'+$memberRowNum+'<input type="hidden" name="volID'+$counter+'" id="volID'+$counter+'"></td>';  
  $appendVal += '<td><input type="text" name="firstName~~" id="firstName~~" size="15" ></td>';  
  $appendVal += '<td><input type="text" name="lastName~~" id="lastName~~" size="20" ></td>';  
  $appendVal += '<td><input type="text" name="email~~" id="email~~" size="25" ></td>';  
  $appendVal += '<td align="center"><input type="checkbox" name="student_~~" id="student_~~"  /></td>';  
  $appendVal += '<td><select name="grade_~~" id="grade_~~"><option value=""></option><option value="13">College</option></option><option value="12">12th</option><option value="11">11th</option><option value="10">10th</option><option value="9">9th</option><option value="8">8th</option><option value="7">7th</option><option value="6">6th</option><option value="5">5th</option><option value="4">4th</option><option value="3">3rd</option></select></td>';  
  $appendVal += '</tr>';  
  $appendVal = $appendVal.replace(/~~/g,$counter);  
  $appendVal = $appendVal.replace(/@@/g,"?");  
  $(".groupMembers > tbody:last").append($appendVal);  
  $("#rowCounter").val($counter);  
}  
下面是HTML/PHP代码段,在该代码段之后,将追加行:

<li><label>Are you registering as Group?</label><?php echo form_checkbox($asGroup);?>
<span id="handleGroupInfo">
<br>Group Name:<?php echo form_input($groupName);?>
<br><br>List names and emails of all group members below. Click plus sign to add more members to group<br>
<table class="groupMembers">
<tbody>
<th>&nbsp;&nbsp;<img id="add_row" alt="Add Group Member" src="<?php echo base_url();?>assets/images/green-plus-sign-tiny.png" />&nbsp;&nbsp;</th>
<th>First Name</th>
<th>Last Name</th>
<th>email</th>
<th>Student?</th>
<th>Grade</th>
</tbody>
</table>
</span>
</li>
</ul> 

在当前实现中,尝试通过隐藏输入传递成员总数

<input type="hidden" name="total_member" value="<?= $this->input->post('total_member'); ?>" />
这样,您就可以知道提交的成员总数,并且在出现验证错误时

<?php if(validation_errors()): ?>
  <?php for($i = 0; $i < $this->input->post('total_member'); $i++): ?>
    // For example...
    <td><input type="text" name="firstName<?= $i; ?>" id="firstName<?= $i; ?>" value="<?= $this->input->post('firstName' . $i); ?>" size="15" ></td>
    // And so no...
  <?php endfor; ?>
<?php endif; ?>

*注意:我没有检查语法。举个例子…

我就是这样结束的。我希望有一个更干净的方法来做这件事,但这是可行的。谢谢