Javascript 如何在数据库中保存多个数据数组
我创建了一个addline数组按钮来创建多个数组字段。我的问题是,我无法保存插入到这些字段中的数据 JavaScriptJavascript 如何在数据库中保存多个数据数组,javascript,php,codeigniter,Javascript,Php,Codeigniter,我创建了一个addline数组按钮来创建多个数组字段。我的问题是,我无法保存插入到这些字段中的数据 JavaScript var MaxInputs = 3; //maximum input boxes allowed var InputsWrapper = $(""); var addlines = 1; var FieldCount = 1; //to keep track of text box added function AddORDe
var MaxInputs = 3; //maximum input boxes allowed
var InputsWrapper = $("");
var addlines = 1;
var FieldCount = 1; //to keep track of text box added
function AddORDeleteLines(obj,type){
type=type+'';
var objtype=obj.id+'';
if(type==="add"){
if(objtype==='AddMoreLines'){
if(addlines<=MaxInputs){
FieldCount++;
InputsWrapper = $("#ADD_LINE-txtEmployee-div");
$(InputsWrapper).append('<div class="class-div_'+FieldCount+'">'+
'<input type="text" name="txtEmployee" size="30"/>'+
'</div>');
InputsWrapper = $("#ADD_LINE-txtDate-div");
$(InputsWrapper).append('<div class="class-div_'+FieldCount+'">'+
'<input type="date" name="txtDate"/>'+
'</div>');
InputsWrapper = $("#ADD_LINE-txtTimeFrom-div");
$(InputsWrapper).append('<div class="class-div_'+FieldCount+'">'+
'<input type="time" name="txtTimeFrom" />'+
'</div>');
InputsWrapper = $("#ADD_LINE-txtTimeTo-div");
$(InputsWrapper).append('<div class="class-div_'+FieldCount+'">'+
'<input type="time" name="txtTimeTo" />'+
'<input type="button" onClick="AddORDeleteLines(this,'+"'delete'"+')" id="removeButton_'+FieldCount+'" value="x" class="removeLines"/>'+
'</div>');
addlines++;
}
}
}
else if(type==="delete"){
var parentobj = $("#"+obj.id).parent('div');
//$(parentobj).parent('div').remove();
var objclass = $("#"+obj.id).parent('div').attr("class")+'';
objtype = $("#"+obj.id).attr("class")+'';
if(objtype==='removeLines'){
addlines--;
}
$("div").remove('.'+objclass);
return false;
}}
模型
我认为您需要使用php的json_encode()或serialize()函数来存储每个字段的多个值。将saveovertime()函数替换为以下函数:
function saveovertime(){
$value = array(
'EMPLOYEE'=>json_encode($this->input->post('txtEmployee')),
'TIME_FROM'=>json_encode($this->input->post('txtTimeFrom')),
'TIME_TO'=>json_encode($this->input->post('txtTimeTo')),
'DATE'=>json_encode($this->input->post('txtDate')));
$query = $this->db->insert('dtr_timerecord_overtime_line',$value);}
html元素的名称必须为“数组类型”。示例:我已经这样做了。。它不保存任何内容html上的
save按钮在哪里?您必须知道同一id
不能在html页面中放置多个。因此,如果您的保存按钮功能
使用输入的id调用该值
,它将不会工作错误号:1292不正确的时间值:第1行“time\u FROM”列的“false”插入dtr\u timerecord\u timeout\u行
(员工
,时间
,时间
,日期
,加班ID
)值('false','false','false','1)文件名:C:\xampp\htdocs\payroll\system\database\DB\u driver.php行号:330我认为您将在每个字段中存储多个值,因此您需要将数据库中dtr\u timerecord\u timetime\u Line
表的每个字段的数据类型更改为文本类型。
public function SaveOvertime(){
$this->load->library('form_validation');
$this->form_validation->set_rules('txtEmployee[]', 'Employee', 'required');
$this->form_validation->set_rules('txtTimeFrom[]', 'Time From', 'required');
$this->form_validation->set_rules('txtTimeTo[]', 'Time to', 'required');
$this->form_validation->set_rules('txtDate[]', 'Date', 'required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('error_overtime');
}
else
{
$this->load->model('dtr_model');
$this->dtr_model->saveovertime();
$this->load->view('success_overtime');
}
function saveovertime(){
$value = array(
'EMPLOYEE'=>$this->input->post('txtEmployee[]'),
'TIME_FROM'=>$this->input->post('txtTimeFrom[]'),
'TIME_TO'=>$this->input->post('txtTimeTo[]'),
'DATE'=>$this->input->post('txtDate[]'));
$query = $this->db->insert('dtr_timerecord_overtime_line',$value);}
function saveovertime(){
$value = array(
'EMPLOYEE'=>json_encode($this->input->post('txtEmployee')),
'TIME_FROM'=>json_encode($this->input->post('txtTimeFrom')),
'TIME_TO'=>json_encode($this->input->post('txtTimeTo')),
'DATE'=>json_encode($this->input->post('txtDate')));
$query = $this->db->insert('dtr_timerecord_overtime_line',$value);}