我通过ajax将动态创建的表单字段发送到CodeIgniter。
<div class="form-element">
<input type="radio" id="delete-radio[1]" name="delete-radio[1]" value="1">
</div>
<div class="form-element">
<label for="member_id[1]">Membership ID</label>
<input type="text" id="member_id[1]" name="member_id[]" autocomplete="off" value="<?php echo set_value('member_id[1]'); ?>"/>
<?php echo form_error('member_id[1]', '<div class="error">', '</div>'); ?>
</div>
<div class="form-element">
<label for="member_name[1]">Name</label>
<input type="text" id="member_name[1]" name="member_name[]" autocomplete="off" value="<?php echo set_value('member_name[1]'); ?>"/>
<?php echo form_error('member_name[1]', '<div class="error">', '</div>'); ?>
</div>
<div class="form-element">
<label for="member_address[1]">Address</label>
<input type="text" id="member_address[1]" name="member_address[]" autocomplete="off" value="<?php echo set_value('member_address[1]'); ?>"/>
<?php echo form_error('member_address[1]', '<div class="error">', '</div>'); ?>
</div>
我使用以下内容将它们发送到控制器:
$('#submit').click(function() {
var form_data = $('#ajax-form').serialize();
alert(form_data);
$.ajax({
url: "<?php echo site_url('ajax_ci/ajax_check'); ?>",
type: 'POST',
async : false,
data: form_data,
success: function(msg) {
$('#form-name').append(msg);
}
});
return false;
});
这是控制器:
if ($this->input->is_ajax_request()) {
$this->form_validation->set_rules('member_id[]', 'member ID', 'trim|required|xss_clean');
$this->form_validation->set_rules('member_name[]', 'member name', 'trim|required|xss_clean');
$this->form_validation->set_rules('member_address[]', 'member password', 'trim|required|xss_clean');
if($this->form_validation->run() == FALSE) {
echo validation_errors();
} else {
// connect to database
}
} else {
echo "Work on it! Don't give up!";
}
下面的截图是目前发生的事情。
但我希望这些错误出现在各自的form_errors
中
这在我目前的设置中是否可行?
答案 0 :(得分:1)
在从服务器返回的验证错误中,您需要包含有关哪个字段失败的信息。可能是(fieldname =&gt; errormsg)的数组。然后,您的ajax响应处理程序可以找到正确的字段,并相应地将消息附加到DOM。