Php 在同一参数中提交多个值
我有两个具有相同参数的输入文本,我想提交它,并希望影响数据库中的两行 视图Php 在同一参数中提交多个值,php,codeigniter,Php,Codeigniter,我有两个具有相同参数的输入文本,我想提交它,并希望影响数据库中的两行 视图 HTML '<input name="campaign_name" value="campaign_name_1" class="form-control" type="text">' '<input name="campaign_name" value="campaign_name_2" class="form-control" type="text">' 型号 public f
HTML
'<input name="campaign_name" value="campaign_name_1" class="form-control" type="text">'
'<input name="campaign_name" value="campaign_name_2" class="form-control" type="text">'
型号
public function save($data)
{
$this->db->insert($this->table, $data);
return $this->db->affected_rows();
}
function edit_cs(id)
{
save_method = 'update';
$('#form')[0].reset();
$('.form-group').removeClass('has-error');
$('.help-block').empty();
$.ajax({
url : "<?php echo site_url('cs/ajax_edit/')?>/" + id,
type: "GET",
dataType: "JSON",
{
// the data came from this "dataa"
dataa = [{ campaign_name: "eedfefs",status: 1},
{campaign_name:"aarar",status:2}];
console.log(dataa);
for (var i = 0; i < dataa.length; i++) {
var campaign_name = dataa[i].campaign_name;
var badges = document.createElement('div');
badges.className = 'badges';
badges.innerHTML =
'<input name="campaign_name[]" value="'+campaign_name+'" id="campaign_name"class="form-control" type="text">';
document.getElementById('case2').appendChild(badges);
}
$('#modal_form').modal('show');
$('.modal-title').text('Call Action');
}
}
});
}
function save()
{
var url = "<?php echo site_url('cs/ajax_update')?>";
$.ajax({
url : url,
type: "POST",
data: $('#form').serialize(),
dataType: "JSON",
success: function(data)
{
if(data.status) //if success close modal and reload ajax table
{
$('#modal_form').modal('hide');
reload_table();
}
});
}
html中的ajax
public function save($data)
{
$this->db->insert($this->table, $data);
return $this->db->affected_rows();
}
function edit_cs(id)
{
save_method = 'update';
$('#form')[0].reset();
$('.form-group').removeClass('has-error');
$('.help-block').empty();
$.ajax({
url : "<?php echo site_url('cs/ajax_edit/')?>/" + id,
type: "GET",
dataType: "JSON",
{
// the data came from this "dataa"
dataa = [{ campaign_name: "eedfefs",status: 1},
{campaign_name:"aarar",status:2}];
console.log(dataa);
for (var i = 0; i < dataa.length; i++) {
var campaign_name = dataa[i].campaign_name;
var badges = document.createElement('div');
badges.className = 'badges';
badges.innerHTML =
'<input name="campaign_name[]" value="'+campaign_name+'" id="campaign_name"class="form-control" type="text">';
document.getElementById('case2').appendChild(badges);
}
$('#modal_form').modal('show');
$('.modal-title').text('Call Action');
}
}
});
}
function save()
{
var url = "<?php echo site_url('cs/ajax_update')?>";
$.ajax({
url : url,
type: "POST",
data: $('#form').serialize(),
dataType: "JSON",
success: function(data)
{
if(data.status) //if success close modal and reload ajax table
{
$('#modal_form').modal('hide');
reload_table();
}
});
}
功能编辑(id)
{
save_方法='update';
$('#form')[0].reset();
$('.form group').removeClass('has-error');
$('.help块').empty();
$.ajax({
url:“/”+id,
键入:“获取”,
数据类型:“JSON”,
{
//数据来自这个“数据A”
dataa=[{campaign_name:“eedfefs”,状态:1},
{运动名称:“aarar”,状态:2}];
console.log(dataa);
对于(变量i=0;i
我认为问题在于,要想从两个输入文本中获得数组,就必须比控制器更聪明。请注意,如果只插入一个输入文本,它已经可以工作了。如果不能使用相同名称的输入,它将被覆盖。 您可以将[]放在名称后面,使它们成为一个数组, 例如:
<input name="campaign_name[]" value="campaign_name_1" class="form-control" type="text">
<input name="campaign_name[]" value="campaign_name_2" class="form-control" type="text">
将回响
campaign_name_1
campaign_name_2
在AJAX函数中,您应该以相同的方式进行处理。如果您希望同时为每个活动生成一行,并获得适当数量的受影响的行(),则需要使用
插入批处理()
:
首先,您需要遵循pradeeps的答案,并将输入正确定义为数组:
'<input name="campaign_name[]" value="campaign_name_1" class="form-control" type="text">'
'<input name="campaign_name[]" value="campaign_name_2" class="form-control" type="text">'
并对save()
方法进行小修改:
public function save($data)
{
$this->db->insert_batch($this->table, $data);
return $this->db->affected_rows();
}
我试过那个人,但仍然不工作,你知道我在哪里可以调试或响应$u POST[campaign\u name]?在控制器或模型中?让我们看看您的ajax代码,将其添加到问题中。然后您在控制器中进行响应。您可以在开发工具网络>“页面名称”>响应中查看响应您是否希望每个活动名称都是一个新的插入项?您的db模式是什么样子?添加您的ajax代码是的,先生,我在上面的代码中添加了我的ajax html显示完整的ajax代码和DB模式一样,DB模式就像我的模型一样,代码只是再次更新,如果我使用了它已经工作了,考虑控制器得到数组,但它只是合并成一个字符串,只会影响一个行。你的模型告诉我关于你的DB表,除了它有一个名为活动名称的列。描述为什么要使用数组作为输入。如果使用“内爆”,则所有活动名称都将位于列
活动\u name
下的同一db行中,这就是您试图实现的目标吗?如果是,则应仅使用一个输入,并将所有活动名称写入其中。还是希望每个活动名称都有一个新行?那么foreach campaign_name[]输入值是否开始一个新行?
public function save($data)
{
$this->db->insert_batch($this->table, $data);
return $this->db->affected_rows();
}