Я пытаюсь вставить значения формы в свою таблицу. Я не знаю, почему он не публикует значения, которые дают мне значения ошибок, не могут быть нулевыми Я уверен, что я упомянул правильные значения таблицы в своей форме, может ли кто-нибудь проверить, какую ошибку я сделал
Вот моя кнопка:
<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>
Получил эту ошибку:
Column 'topicid' cannot be null
INSERT INTO `reviewmanager`
(`topicid`, `stage`, `allocatedresource`,
`status`, `createdby`, `createdon`, `expec`)
VALUES (NULL, NULL, NULL, 1, 'admin', '16/08/2018', NULL)
Может ли кто-нибудь помочь мне в том, какую ошибку я совершил
Заранее спасибо.
🤔 А знаете ли вы, что...
PHP поддерживает работу с куки для управления данными между запросами.
Используйте только одну форму со скрытыми полями и присваивайте значения этим скрытым полям, используя jquery, например
Ваш вид кнопки
<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" id = "topic_id">
<input type = "hidden" name = "courseid" id = "course_id">
решил это, как показано ниже
<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>
Код контроллера1:
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');
}
}
Код контроллера 2
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');
}