Отправить данные только раскрывающегося списка в контроллер и обновить их в базе данных, используя ajax? - PullRequest
1 голос
/ 01 августа 2020

[enter image description hereThis is my view table which is fetching data from my DB which is sqlite3. but I want to update the tested column on the same page which is why I'm using ajax call but I don't know how to pass data in an AJAX function and fetch it into controller I'm really new.

      Sr  Тип  Программное обеспечение  Владелец  Описание  Ввод  Выход  Примечания  Приоритет  Тест  Орудие  Изменить  Удалить              "; foreach ($ options как $ option) {if ($ selected == $ option) {echo" $ option";} else {echo" $ option";}} echo"";?>   Редактировать   Удалить    Требования не найдены ...     

Вот мой ajax вызов в представлении. Я могу получить данные из теста, но я не знаю, как передать их через ajax

    function update(event,id){
           // console.log(event.target.value);
            var tested= event.target.value;
           // console.log(tested);
            var id=id;
            //console.log(id);
    
              $.post("<?php echo base_url().'index.php/rest_req/editS/'?>id",
             { 
                 dataType: 'text',
                data: tested:tested,
             });
        }

, и это мой контроллер, в котором я хочу получить передаваемые данные. автор: AJAX

     public function editS($req_id)
        {
            $this->load->model('rest_model');
            $requirement = $this->rest_model->getReq($req_id);
            $data = array();
            $data['requirement'] = $requirement;
            $test= Request.Form("tested");
            $formArray = array();
            $formArray['tested'] = $this->input->post('tested');
            $this->rest_model->updateS($req_id, $formArray);
            $this->session->set_flashdata('success', 'Requirement Updated successfully.');
        }

Это моя модель, с которой я получаю данные, но не уверен, что это правильно

     public function updateS($req_id,$formArray){
            $this->db->where('req_id',$req_id);
            $this->db->update('req_data',$formArray);
        }

1 Ответ

0 голосов
/ 01 августа 2020

Привет и добро пожаловать на платформу!

Есть разные способы отправлять запросы POST через ajax. Один из способов выглядит так:

$.post(
        "http://someurl",
        { 
            field1: value1,
            field2: value2
        },
        function (responseData) {
            console.log(responseData);
        }
);

Это почти то же самое, что вы пробовали, за исключением момента, когда вы пытаетесь вставить данные в параметр данных. При использовании этого способа этого делать не нужно.

Правильный код для вашего случая:

function update (event,id) {
        // console.log(event.target.value);
        var tested= event.target.value;
        // console.log(tested);
        var id=id;
        //console.log(id);
    
        $.post(
            "<?php echo base_url().'index.php/rest_req/editS/'?>id",
            {
                tested: tested,
            }
        );
}

Другой способ более продвинутый и выглядит так:

$.ajax({
    url: "http://someurl",
    type: "POST",
    data: {
        field1: value1,
        field2: value2
    },
    success: function (responseData) { console.log(responseData); },
    dataType: "text"
});

Итак, в вашем случае это может выглядеть так:

function update(event,id){
        // console.log(event.target.value);
        var tested= event.target.value;
        // console.log(tested);
        var id=id;
        //console.log(id);
    
        $.ajax({
            url: "<?php echo base_url().'index.php/rest_req/editS/'?>id",
            type: "POST",
            data: {
                tested: tested
            },
            success: function (responseData) { console.log(responseData); },
            dataType: "text"
        });
}

После использования одного из этих методов вы должны получить значение tested в вашем контроллере:

$tested = $_POST['tested];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...