首页 > 解决方案 > Codeigniter:使用 ajax 通过动态下拉列表更改状态

问题描述

我正在获取用户列表,表中的最后一列是用户的状态,默认是new,管理员可以将状态更改为新的done,我是 Codeigniter 的新手,所以不知道我的代码出了什么问题。

我的观点:

              <thead>
                    <th>Sr.no</th>
                    <th>Hospital Name</th>
                    <th>Blood type</th>
                    <th>Status</th>
              </thead>
              <tbody>
                    <?php if(count($all_blood>0))
                    {
                          $i=0;
                          foreach ($all_blood as $user) 
                          {
                                $i++;
                                ?>
                                <tr>
                                      <td><?php echo $i ?></td>
                                      <td><?php echo $user->h_name ?></td>
                                      <td><?php echo $user->btype?></td>
                                      <td>
                                      <select id="statusChange[<?= $user->req_id ?>]" <?php if ($user->status == 1) :?> disabled <?php endif;?> class="check">
                                            <option value="0" <?php if (0 == $user->status) : ?> selected<?php endif; ?>>New</option>
                                            <option value="1" <?php if (1 == $user->status) : ?> selected<?php endif; ?>>Done</option>
                                      </select>
                                      </td>
                                      <td>
                                      <?php $id = $user->req_id;?>
                                      <a  href="<?php echo site_url("users/delete/$id")?>" class="delete">Delete</a>
                                      </td>
                                </tr>
                                <script>
                                $(window).on('load', function() {
                                      $("#statusChange[<?= $user->req_id ?>]").on('change',function() 
                                      {
                                            console.log("change");
                                            $.ajax({
                                            type:'POST',
                                            data:{id:"<?= $user->req_id?>"},
                                            url:'<?php echo base_url("getData/change_status"); ?>',
                                                  success:function(data){
                                                        console.log(data);
                                                  }
                                            });
                                            event.preventDefault();
                                      });
                                });
                                </script>
                  <?php   }
                    }?>
              </tbody>

现在我尝试将 ajax 排除在 foreach 循环之外,但是我的 ajax 没有得到一个问题,req_id我需要将其发送到控制器,这是另一个问题,我正在尝试使用动态classid所以它只会管理员会选择,但它不起作用

如果我将下拉列表的 id 更改为简单的“statusChange”,则该函数.on('change')运行良好,但如果我使用动态,则不会调用

标签: phpjqueryajaxcodeigniterdrop-down-menu

解决方案


推荐阅读