Может кто-нибудь мне помочь, я пытаюсь вставить данные в 2 таблицы в одной форме с помощью codeigniter. но, моя проблема, данные не вставлены правильно. возможно, из-за моего массива, потому что я хочу, чтобы моя вставка данных добавила динамический ввод. пожалуйста, помогите мнеВставить несколько строк codeigniter
Table questions_bank:
q_id int(11) AutoIncrement
id int(11)
type varchar(100)
q_text varchar(200)
Table answer:
a_id int(11) AutoIncrement
id int(11)
q_id int(11)
a_text varchar
мой контроллер: question.php
function questions_data()
{
$data = array(
'q_id' => $this->input->post('q_id'),
'id' => $this->input->post('id'),
'type' => $this->input->post('type'),
'q_text' => $this->input->post('q_text')
);
$data_answer = array(
//'q_id' => $this->input->post('q_id'),
'id' => $this->input->post('id'),
'a_text' => $this->input->post('a_text[]'),
);
$this->questions_data->questions($data,$data_answer);
redirect('question/insert');
}
модель: questions_data.php
public function questions()
{
$data=array(
'q_id'=>$this->input->post('q_id'),
'id'=>$this->input->post('id'),
'type'=>$this->input->post('type'),
'q_text'=>$this->input->post('q_text'),
);
$data_answer = array(
'id' => $this->input->post('id'),
);
$this->db->insert('questions_bank',$data);
$data_answer['q_id'] = $this->db->insert_id();
$this->db->insert('answer',$data_answer);
foreach($_POST['a_text1'] as $a_text1)
{
$this->db->insert('answer',$a_text1);
}
}
мой взгляд: insert.php
<label class="col-sm-2 control-label">Course</label>
<div class="col-md-4">
<?php
$query = "SELECT * FROM course"; $result = mysql_query($query); ?>
<select name="id" class="form-control m-b"><?php while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { ?>
<option value=" <?php echo $line['id'];?> "> <?php echo $line['Topics'];?></option> <?php } ?>
</select>
</div>
</div>
<div class="line line-dashed b-b line-lg pull-in"></div>
<div class="form-group">
<label class="col-sm-2 control-label">Type</label>
<div class="col-md-4">
<select name="type" class="form-control m-b">
<option value="Easy">Easy</option>
<option value="Intermidiate">Intermidiate</option>
<option value="Hard">Hard</option>
</select>
</div>
</div>
<div class="line line-dashed b-b line-lg pull-in"></div>
<div class="form-group">
<label class="col-sm-2 control-label">Question</label>
<div class="col-md-5">
<input type="text" name="q_text" id="q_text" class="form-control" />
</div>
</div>
<div id="box">
<div class="line line-dashed b-b line-lg pull-in"></div>
<div class="form-group">
<label class="col-sm-2 control-label">Answer</label>
<div class="col-md-5">
<input name="a_text1[' + i +'][a_text]" type="text" id="name" class="form-control"></div>
<img src="<?php echo base_url(); ?>assets/add/add.png" width="32" height="32" border="0" align="top" class="add" id="add" />
</div></div></div>
<button type="submit" class="btn btn-sm btn-default">Submit</button
я есть прикрепить изображение результата здесь
сценарий для нескольких строк
<script>
$(document).ready(function(){
$('#add').click(function(){
var inp = $('#box');
var i = $('input').size() ;
$('<div id="box' + i +'"><div class="form-group"><label class="col-sm-2 control-label">Answer</label><div class="col-md-5"><input type="text" id="name' + i+ '" class="form-control" name="a_text1[' + i +'][a_text]" /></div><img src="<?php echo base_url(); ?>assets/add/remove.png" align="top" class="add" id="remove" /></div></div></div>').appendTo(inp);
i++;
});
Вы не должны передавать любые аргументы при вызове $ this-> questions_data-> questions() –
А также вам не нужно объявлять $ data и $ data_array в контроллере –
Ваша форма курса заполнена с именем 'id', вы вручную передаете' $ this-> input-> post ('id') 'в массив обновления, где идентификатор курса хранится как id для ваш стол. Вы, похоже, смущены тем, что делаете. – Mohan