Сообщение со значением флажка Php для просмотра с использованием codeigniter framework

#php #codeigniter #checkbox

#php #codeigniter #флажок

Вопрос:

опубликовать значение выбранного флажка из формы php для просмотра в codeigniter framework

форма php

 <input type='checkbox' value="<?php echo $row_id ?>">
<input type='hidden' name='asap[]' value="1 " >
<input type='hidden' name='asap[]' value="2 " >
<input type='hidden' name='asap[]' value="3 " >
 

контроллер

 $asap=> $this->input->post('asap')
 

Вид

 echo $asap;
 

значение флажка не отображается в представлении

Комментарии:

1. В чем вопрос? $asap был бы массив ( я думаю )

2. о, я забыл об этом .. просмотр не отображает сообщение, которое я ввожу

3. echo $asap[0]; Может быть?

4. Неопределенный индекс: как можно скорее, но я уже определяю его как $this-> load-view(‘просмотр’);

5. все еще не могу получить его, вот мой полный контроллер public function view() { $this->layout->buffer ( array( 'asap' =>$this->input->post('asap') )); $this->load->view('view'); }

Ответ №1:

Вид:

 <input type='checkbox' name='cname' value="<?php echo 'cvalue'; ?>">//changes
<input type='hidden' name='asap[]' value="1" >
<!--removed right space from value-->
<input type='hidden' name='asap[]' value="2" >
<!--removed right space from value-->
<input type='hidden' name='asap[]' value="3" >
<!--removed right space from value-->
 

контроллер:

 //here you have syntax error use `=` instead `=>`
$postData = $this->input->post();
//you get all your post data, if you added `name` attribute only
print_r($postData);
//it will return you first hidden value
print_r($postData['asap'][0]);
echo '------------';
echo 'loop values';
$asap = $this->input->post('asap');
foreach($asap as $row){
       echo $row.'<pre>';
}
 

вывод:

 Array
(
    [cname] => cvalue
    [asap] => Array
        (
            [0] => 1 
            [1] => 2 
            [2] => 3 
        )

)
1
----------
loop values
1
2
3
 

Комментарии:

1. Он использует CodeIgniter 🙂

2. @Eddie, я что-то упустил?

3. Я вообще не знаком с CI, но я уверен, что у него есть правильный способ получения post данных, а не $data = $_POST

4. хорошо обновленный код, я предположил, что он, прочитал все из руководства пользователя, спасибо @Eddie

5. спасибо, сэр, я могу получить значение сейчас, но как я могу повторить их по строкам? <td><?php echo $asap> или foreach ($asap as sap) { эхо 1 на 1 или массив по строкам

Ответ №2:

вы хотите получить значение флажка, поэтому вам нужно поместить его в массив.

В контроллере

 public function update() {
   $completed_asap = $this->input->post('asap');
   // No need to echo $completed_asap. If you want then please do below line.
   // var_dump($completed_asap);
   foreach ($completed_asap as $asap_id) {
      echo 'The asap with id = ' . $asap_id. ' is marked as completed.<br>';
   }
}
 

По вашему мнению

  <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Simple CodeIgniter</title>
    <link rel="stylesheet"
    href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
</head>
<body>
    <div class="container">
        <h1>Todos</h1>
        <?php echo form_open('controller_name/update'); ?>
            <div class="list-group">
                <?php foreach ($todos as $todo) { ?>
                    <div class="list-group-item clearfix">
                        <?php echo form_checkbox('asap[]', $asap->id, $asap->completed); ?>
                        <?php echo $asap->task; ?>
                    </div>
                <?php } ?>
            </div>
            <button type="submit">Submit</button>
        <?php echo form_close();
    </div>
</body>
</html>