ajax - 创建功能不起作用。数据表和 Ajax
问题描述
我的创建功能不起作用。但是,更新和删除是完美的工作。每当我创建/添加用户时,即使我插入了有效的姓名和电子邮件,它总是会触发错误“需要姓名”。我是这个ajax的新手,希望有人能提供帮助。我在下面提供了我的代码和屏幕截图。太感谢了。
意见:
<button class="btn btn-success" onclick="add_person()"><i class="glyphicon glyphicon-plus"></i> Add Person</button>
<button class="btn btn-default" onclick="reload_table()"><i class="glyphicon glyphicon-refresh"></i> Reload</button>
<button class="btn btn-danger" onclick="bulk_delete()"><i class="glyphicon glyphicon-trash"></i> Bulk Delete</button>
<br />
<br />
<table id="table" class="table table-striped table-bordered" cellspacing="0" width="100%">
<thead>
<tr>
<th><input type="checkbox" id="check-all"></th>
<th>Name</th>
<th>Email</th>
<th style="width:150px;">Action</th>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
<tr>
<th></th>
<th>Name</th>
<th>Email</th>
<th>Action</th>
</tr>
</tfoot>
</table>
</div>
<!-- Bootstrap modal -->
<div class="modal fade" id="modal_form" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h3 class="modal-title">Person Form</h3>
</div>
<div class="modal-body form">
<form action="#" id="form" class="form-horizontal">
<input type="hidden" value="" name="id"/>
<div class="form-body">
<div class="form-group">
<label class="control-label col-md-3">Name</label>
<div class="col-md-9">
<input name="name" id="name" placeholder="Name" class="form-control" type="text">
<span class="help-block"></span>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3">Email</label>
<div class="col-md-9">
<input name="email" id="email" placeholder="Email" class="form-control" type="text">
<span class="help-block"></span>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" id="btnSave" onclick="save()" class="btn btn-primary">Save</button>
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancel</button>
</div>
</form>
</div>
</div>
</div>
<!-- End Bootstrap modal -->
阿贾克斯:
function save()
{
$('#btnSave').text('saving...'); //change button text
$('#btnSave').attr('disabled',true); //set button disable
var url;
if(save_method == 'add') {
url = "<?php echo site_url('profile/ajax_add')?>";
} else {
url = "<?php echo site_url('profile/ajax_update')?>";
}
// ajax adding data to database
var formData = new FormData($('#form')[0]);
$.ajax({
url : url,
type: "POST",
data: formData,
contentType: false,
processData: false,
dataType: "JSON",
success: function(data)
{
if(data.status) //if success close modal and reload ajax table
{
$('#modal_form').modal('hide');
reload_table();
}
else
{
for (var i = 0; i < data.inputerror.length; i++)
{
$('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has-error'); //select parent twice to select div form-group class and add has-error class
$('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]); //select span help-block class set text error string
}
}
$('#btnSave').text('save'); //change button text
$('#btnSave').attr('disabled',false); //set button enable
},
error: function (jqXHR, textStatus, errorThrown)
{
alert('Error adding / update data');
$('#btnSave').text('save'); //change button text
$('#btnSave').attr('disabled',false); //set button enable
}
});
}
控制器:
public function ajax_add()
{
$this->_validate();
$data = array(
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
);
$insert = $this->profiles->save($data);
echo json_encode(array("status" => TRUE));
}
//validation
private function _validate()
{
$data = array();
$data['error_string'] = array();
$data['inputerror'] = array();
$data['status'] = TRUE;
if($this->input->post('name') == '')
{
$data['inputerror'][] = 'name';
$data['error_string'][] = 'Name is required';
$data['status'] = FALSE;
}
if($this->input->post('email') == '')
{
$data['inputerror'][] = 'email';
$data['error_string'][] = 'Email is required';
$data['status'] = FALSE;
}
if($data['status'] === FALSE)
{
echo json_encode($data);
exit();
}
}
模型:
public function save($data)
{
$this->db->insert($this->table, $data);
return $this->db->insert_id();
}
解决方案
推荐阅读
- c++ - 对象在第一个 C++ 版本中不可移动的技术原因?
- python - Flask缓存一些数据但不是全部
- c++ - 当我没有将 heapify 函数中的值分配给变量时,我无法弄清楚为什么我的霍夫曼树的 c++ 代码正在工作
- wordpress - Wordpress - 子类别可以通过不同的永久链接访问。怎么修?
- hyperledger-fabric - Hyperledger Fabric 中的“peer chaincode install -p”是什么意思?
- drop-down-menu - Angular Material 下拉选择 CSS
- python - Python:在字典列表中高效查找
- javascript - 用于超链接格式化功能的引导表数据格式化程序不起作用
- discord - 如何在 discord.py 重写中使用 wait_for
- python-3.x - Django 上的 MakeMigration 错误 - ImportError:无法从“django.db.models”导入名称“FieldDoesNotExist”