Я пытаюсь вставить значения формы в свою таблицу. Я не знаю, почему он не публикует значения, которые дают мне значения ошибок, не может быть null. Я уверен, что я упомянул правильные значения таблиц в моей форме, может кто-нибудь проверить, какую ошибку я сделал
Вот моя кнопка:
<td><form action="<?php echo base_url();?>Dashboard/ReviewManagement" method="POST">
<input type="hidden" name="topicid" value="<?php echo $proview->id;?>">
<input type="hidden" name="courseid" value="<?php echo $proview->courseId;?>">
<button type="submit" class="btn btn-xs btn-warning" >
<span class="icon-ok"></span>
</button>
</form></td>
Вот мой контроллер:
public function ReviewManagement() {
$username = $this->session->userdata('user_name');
$data['userslist'] = $this->Dashboard_model->getUsers();
$insert_data = array(
'topicid' =>$this->input->post('topicid'),
'stage' => $this->input->post('stage'),
'allocatedresource' => $this->input->post('allocatedresource'),
'status' => 1,
'createdby' => $username,
'createdon' => date('d/m/Y'),
'expec' =>$this->input->post('expec')
);
$this->Dashboard_model->reviewmanagerInsert($insert_data);
$this->load->view('template/header');
$this->load->view('dashboard/reviewmanagement',$data);
$this->load->view('template/footer');
}
Here is my model:
public function reviewmanagerInsert($data)
{
$this->db->insert('reviewmanager',$data);
}
Вот мое мнение:
<form action="<?php echo base_url();?>Dashboard/ReviewManagement" method="post">
<div class="form-row">
<div class="col-md-3">Reviewer:</div>
<div class="col-md-9">
<select name="allocatedresource" class="form-control">
<option value="0">Select Reviewer</option>
<?php foreach ($userslist as $users) { ?>
<option value="<?php echo $users->id; ?>"><?php echo $users->username; ?></option>
<?php } ?>
</select>
</div>
</div>
<div class="form-row">
<div class="col-md-3">Stage:</div>
<div class="col-md-9">
<select class="form-control col-md-8" name="stage" required="">
<option value="" selected="">Select Stage</option>
<option value="1">PB Review</option>
<option value="2">PB2 Review</option>
<option value="3">Alpha Review</option>
<option value="4">Beta Review</option>
<option value="5">Gamma Review</option>
</select>
</div>
</div>
<div class="form-row">
<div class="col-md-3">Due Date:</div>
<div class="col-md-9">
<div class="input-group">
<div class="input-group-addon"><span class="icon-calendar-empty"></span></div>
<input type="text" name="expec" autocomplete="off" required="" class="datepicker form-control" value=""/>
</div>
</div>
</div>
<div class="form-row">
<div class="col-md-8 col-md-offset-2">
<button type="submit" class="btn btn-primary btn-block">Assign</button>
</div>
</div>
</form>
Получил эту ошибку:
Топик столбца не может быть нулевым.
INSERT INTO 'reviewmanager'
('topicid', 'stage', 'allocatedresource',
'status', 'createdby', 'createdon', 'expec')
VALUES (NULL, NULL, NULL, 1, 'admin', '16/08/2018', NULL)
Может ли кто-нибудь помочь мне, какую ошибку я сделал
Заранее спасибо.
решил это как ниже
<td><form action="<?php echo base_url();?>Dashboard/ReviewManagement" method="POST">
<input type="hidden" name="topicid" value="<?php echo $proview->id;?>">
<input type="hidden" name="courseid" value="<?php echo $proview->courseId;?>">
<button type="submit" class="btn btn-xs btn-warning" >
<span class="icon-ok"></span>
</button>
</form></td>
Изменено второе от следующего ниже
<form action="<?php echo base_url();?>Dashboard/ReviewManagementInsert" method="post">
<div class="form-row">
<div class="col-md-3">Reviewer:</div>
<div class="col-md-9">
<select name="allocatedresource" class="form-control">
<option value="0">Select Reviewer</option>
<?php foreach ($userslist as $users) { ?>
<option value="<?php echo $users->username; ?>"><?php echo $users->username; ?></option>
<?php } ?>
</select>
</div>
</div>
Контроллер Code1:
public function ReviewManagement() {
if ($this->session->userdata('is_logged')) {
if (!empty($this->input->post('topicid'))) {
$id = $this->input->post('topicid');
$data['userslist'] = $this->Dashboard_model->getUsers();
$data['id'] = $this->input->post('topicid');
$this->session->set_userdata('topicid', $data['id']);
$this->load->view('template/header');
$this->load->view('dashboard/reviewmanagement', $data);
$this->load->view('template/footer');
} elseif (!empty($this->session->userdata('topicid'))) {
$id = $this->session->userdata('topicid');
$data['userslist'] = $this->Dashboard_model->getUsers();
$data['id'] = $this->session->userdata('gettopicdetails');
$this->load->view('template/header');
$this->load->view('dashboard/reviewmanagement', $data);
$this->load->view('template/footer');
} else {
echo 'im else';
die;
}
} else {
$this->session->set_flashdata('error', 'Topic Id not captured.');
redirect('Dashboard');
}
}
Контроллер Code2
public function ReviewManagementInsert() {
$topicid = $this->session->userdata('topicid');
$username = $this->session->userdata('user_name');
$insert_data = array(
'topicid' => $topicid,
'stage' => $this->input->post('stage'),
'allocatedresource' => $this->input->post('allocatedresource'),
'status' => 1,
'createdby' => $username,
'createdon' => date('d/m/Y'),
'expec' => $this->input->post('expec')
);
$this->Dashboard_model->reviewmanagerInsert($insert_data);
$this->load->view('template/header');
$this->load->view('dashboard/reviewmanagement');
$this->load->view('template/footer');
}
Просто добавьте ниже два ввода внутри вашей формы...
<input type="hidden" name="topicid" id="topic_id">
<input type="hidden" name="courseid" id="course_id">
Используйте только одну форму со скрытыми полями и присваивайте значения этим скрытым полям, используя jquery like
Вид вашей кнопки
<td>
<div id="topicid" value="<?php echo $proview->id;?>"></div>
<div id="courseid" value="<?php echo $proview->courseId;?>"></div>
<button type="button" class="btn btn-xs btn-warning" >
<span class="icon-ok" id="submit"></span>
</button>
</td>
И в вашей основной форме добавьте ниже скрытые поля
<input type="hidden" name="topicid" id="topic_id">
<input type="hidden" name="courseid" id="course_id">
Затем добавьте js для присвоения значений
$(document).ready(function(){
$("#submit").click(function(){
var topicid = $("#topicid").val();
var courseid = $("#courseid").val();
$("#topic_id").val(topicid);
$("#course_id").val(courseid);
});
});
Однако этот ответ не проверен.
<input type="hidden" name="topicid" value="<?php echo $proview->id;?>"> <input type="hidden" name="courseid" value="<?php echo $proview->courseId;?>">