Как можно использовать ajax-jquery для получения выбранных данных флажка в модальном режиме с помощью PHP-CodeIgniter

как использовать таблицу HTML с флажком во всех строках, и при нажатии кнопки я хочу получить эти выбранные идентификаторы флажков в модальном окне. поэтому я хочу использовать ajax для получения связанных данных выбранных идентификаторов из базы данных и отображения в таблице в модальном режиме с помощью PHP-CodeIgniter. кто-нибудь может помочь мне получить это?

Я пробовал много способов, но все безуспешно.

Заранее большое спасибо.

Пожалуйста, посмотрите мой код.

На моей таблице страницы просмотра

<table id = "dynamic-table">
        <thead>
            <th> Check</th>
            <th> Name</th>
            <th> Country</th>
        </thead>
        <tbody>
            <tr>
                <td> <input type = "checkbox" name = "ch1" value = "1"> </td>
                <td> Rashid </td>
                <td> India </td>
            </tr>
            <tr>
                <td> <input type = "checkbox" name = "ch1" value = "2"> </td>
                <td> Nishad </td>
                <td> India </td>
            </tr>
            <tr>
                <td> <input type = "checkbox" name = "ch1" value = "3"> </td>
                <td> sajeesh </td>
                <td> India </td>
            </tr>
        </tbody>

    </table>

    <button name = "submit" id = "subm"> Submit </button>
    <button name = "cancel" id = "canc"> Cancel </button>


    <div id = "message"></div>

Скрипт на странице просмотра:

<script>
    $(document).ready(function(){
        $("#subm").click(function(){
            getValueUsingParentTag();
        });
    });
    function getValueUsingParentTag(){
var chkArray = [];

/* look for all checkboes that have a parent id called 'checkboxlist' attached to it and check if it was checked */
$("#dynamic-table input:checked").each(function() {
    chkArray.push($(this).val());
});

/* we join the array separated by the comma */
var selected;
selected = chkArray.join(',') ;




var url = "<?php echo base_url(); ?>/index.php/Ajax";
    $.post( url, { test_input: selected } ) 

         .done(function(data){
            $("#message").html(data.result);
        });





/* check if there is selected checkboxes, by default the length is 1 as it contains one single comma */
if (selected.length > 0){
    alert("You have select" + selected);    
}else{
    alert("Please at least check one of the checkbox"); 
}

}

Мой контроллер AJAX

<?php

определено ('BASEPATH') OR exit ('Прямой доступ к сценарию не разрешен');

class Ajax расширяет CI_Controller {

public function index()
{
    $posted = $this->input->post('test_input');
    echo json_encode(array('result'=> $posted));        

}

}

Пожалуйста, предложите мне правки или хорошие. Собственно, я хочу получить данные из БД. Но сначала в этом коде я просто попытался работать с ajax без db. как только это будет успешным, я могу продолжить извлечение данных из БД.

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

cyril 27.10.2018 11:15

@cyril да, конечно, могу. Отредактирую свой вопрос.

user9758928 27.10.2018 13:05

@cyril Обновлено с кодом

user9758928 27.10.2018 13:20
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
1 336
1

Ответы 1

попробуй так сохранить значение id в атрибуте value флажка. затем добавьте класс checkAll к флажку в заголовке таблицы. и добавьте класс my-checkbox к флажку каждой строки, тогда следующий метод будет выбирать / снимать все флажки одновременно. напишите другую функцию, которая будет проходить через каждый флажок с классом my-checkbox и сохранять значение флажка в массиве, а затем возвращать массив. Надеюсь это поможет....

// Select / Deselect all checkboxes
$(".checkAll").click(function () {
    $('input:checkbox').not(this).prop('checked', this.checked);
    console.info(getCheckedValues());
});

function getCheckedValues(){
    var checkboxes = document.getElementsByClassName('my-checkbox');
    var checkboxesChecked = [];
    // loop over them all
    for (var i=0; i < checkboxes.length; i++) {
      // And stick the value of checked ones onto an array...
      if (checkboxes[i].checked) {
        checkboxesChecked.push(checkboxes[i].value);
      }
    }
    // Return the array if it is non-empty, or null
    return checkboxesChecked.length > 0 ? checkboxesChecked : null;
  }

;

Мне нужен этот массив для публикации и извлечения из БД с помощью ajax.

user9758928 27.10.2018 13:07

затем вы можете отправить массив, возвращаемый методом getCheckedValues ​​() через ajax, используя jquery или простой javascript

Ropali Munshi 27.10.2018 13:14

когда я пытаюсь подключиться к ajax, он не работает. Я обновил свой вопрос с помощью фрагмента кода. не могли бы вы взглянуть на это?

user9758928 27.10.2018 13:22

Другие вопросы по теме