вставить значения формы в таблицу не работает в codeigniter

0

Я пытаюсь вставить значения формы в свою таблицу. Я не знаю, почему он не публикует значения, которые дают мне значения ошибок, не может быть 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)

Может ли кто-нибудь помочь мне, какую ошибку я сделал

Заранее спасибо.

  • 0
    Добавьте эти два скрытых поля в форму: <input type="hidden" name="topicid" value="<?php echo $proview->id;?>"> <input type="hidden" name="courseid" value="<?php echo $proview->courseId;?>">
  • 0
    Теперь я получаю этап не может быть нулевым
Показать ещё 7 комментариев
Теги:
codeigniter

3 ответа

0

решил это как ниже

<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');
}
0

Просто добавьте ниже два ввода внутри вашей формы...

<input type="hidden" name="topicid" id="topic_id">
<input type="hidden" name="courseid" id="course_id">
  • 0
    я добавил, но все еще не работает
  • 0
    Я не вижу ни одного из этого поля в вашей форме ... можете ли вы помочь мне с этим, если я скучаю по нему?
Показать ещё 3 комментария
0

Используйте только одну форму со скрытыми полями и присваивайте значения этим скрытым полям, используя 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);
    });
});

Однако этот ответ не проверен.

  • 0
    хорошо, дайте мне 5 минут и дайте мне проверить
  • 0
    как насчет оставшихся значений в моей форме
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню