несколько значений флажка codeigniter, связанных с текстом - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть страница, где люди могут добавлять текст, а рядом с ней есть флажок. Флажок должен быть связан с введенным текстом. У меня также есть кнопка для добавления дополнительных текстовых полей и флажков, контролируемых с помощью javascript. Основная проблема в том, что я получаю только «1», а не не проверено. Поэтому я не могу правильно заполнить массивы, необходимые для записи в базу данных.

<h2 class="display-4 text-center pb-3"><?php echo $this->lang->line('titel'); ?></h2>
<section class="d-flex justify-content-center">
<?php 
    $attributes = array('class' => 'col-md-8'); 
    echo form_open('create_s460/s460', $attributes); 
?>

    <div class="form-group" id="extend_field">
        <div class="row">
            <div class="form-group col-md-7 col-xs-13">
                <label for="ingediendDoor"><?php echo $this->lang->line('melding'); ?></label>
            </div>
            <div class="form-group col-md-2 col-xs-6 text-center">
                <label for="ingediendDoor"><?php echo $this->lang->line('verzender'); ?></label>            
            </div>
            <div class="form-group col-md-3 col-xs-6">
                <label for="ingediendDoor"><?php echo $this->lang->line('voeg_meer_toe'); ?></label>
            </div>
        </div>
        <div class="row">
            <div class="form-group col-md-7 col-xs-13">
                <input type="text" name="s460Melding[][s460_input_melding]" placeholder="<?php echo $this->lang->line('melding'); ?>" class="form-control name_list" required="" />
            </div>
            <div class="form-group col-md-2 col-xs-6 text-center">
                <input type="checkbox" name="s460verzender[][s460_input_verzender]" value="1" checked>          
            </div>
            <div class="form-group col-md-3 col-xs-6">
                <button type="button" name="add" id="add" class="btn btn-success"><?php echo $this->lang->line('voeg_meer_toe'); ?></button>
            </div>
        </div>
    </div>
    <div class="form-group">
    <input type="submit" name="submit" id="submit" class="btn btn-primary btn-block" value="<?php echo $this->lang->line('submit'); ?>" /> 
    </div>

<?php echo form_close(); ?>
<script type="text/javascript">
    $(document).ready(function(){      
      var i=1;  

      $('#add').click(function(){  
           i++;  
           $('#extend_field').append('<div class="row" id="row'+i+'"><div class="form-group col-md-7 col-xs-13"><input type="text" name="s460Melding[][s460_input_melding]" placeholder="<?php echo $this->lang->line('melding'); ?>" class="form-control name_list" required="" /></div><div class="form-group col-md-2 col-xs-6 text-center"><input type="checkbox" name="s460verzender[][s460_input_verzender]" value="1" checked></div><div class="form-group col-md-3 col-xs-6"><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></div></div>');
      });

      $(document).on('click', '.btn_remove', function(){  
           var button_id = $(this).attr("id");   
           $('#row'+button_id+'').remove();  
      });  

    });
</script>
/**
     * Krijg de gegevens voor de S460
     */
    private function collectS460Data()
    {
        if(!empty($this->input->post('s460Melding')))
        {
            $meldingen = $this->input->post('s460Melding');          
        }
        if(!empty($this->input->post('s460verzender')))
        {
            $verzendingen = $this->input->post('s460verzender');          
        }

        if(count($meldingen) < count($verzendingen))
        {
            array_shift($verzendingen);
        }

        for($i = 0; $i < count($meldingen); $i++)
        {
            $data[$i]['s460_input_melding'] = $meldingen[$i]['s460_input_melding'];
            $data[$i]['s460_input_verzender'] = $verzendingen[$i]['s460_input_verzender'];
        }

        // return $data;
        echo '';
        var_dump($meldingen);
        var_dump($verzendingen);
        var_dump($data);
        echo '
'; }

То, что я пытаюсь сделать, это получить введенное соединение (текст сообщения) и флажок inputed verzender. Затем добавьте его в базу данных. Если у кого-то есть решение, которое могло бы работать, я был бы очень счастлив.

1 Ответ

0 голосов
/ 25 апреля 2020

Поскольку проблемы были больше, чем ожидалось, я решил использовать другой подход. Используя переключатели и внешний вид тумблера, мне удалось получить тот же результат без всяких хлопот с использованием флажка. Как это флажок отправляет бросил 1 или ничего. Ничего хорошего, если у вас есть конкретное c имя для флажка и вы можете проверить. Но если у вас есть неопределенное количество, оно становится беспорядочным и неуправляемым.

<div class="form-group col-md-4 col-xs-6 text-center switch-field">
    <input type="radio" id="radio-0" name="s460verzender[0][s460_input_verzender]" value="1" checked/>
    <label for="radio-0"><?php echo $this->lang->line('verzender'); ?></label>
    <input type="radio" id="radio-00" name="s460verzender[0][s460_input_verzender]" value="0"/>
    <label for="radio-00"><?php echo $this->lang->line('ontvanger'); ?></label>
</div>

Чтобы управлять всеми различными переключателями, все, что вам нужно сделать, это добавить значение между name="s460verzender[ value in here ][s460_input_verzender]". Я решил использовать генератор чисел в части javascript для управления всем этим.

Но теперь вы либо получаете 1, либо 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...