【问题标题】:Getting all data after clicking a particular cell in a table单击表格中的特定单元格后获取所有数据
【发布时间】:2021-12-07 07:33:55
【问题描述】:

Dbfiddle:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=65b310b4b973a7577d4953e01c09a124

目前我有一个表格,显示每个来源的数据值的总数。我在比较 2 个表后得到了这个值,其中 1 个是 crm_leads 与我的所有产品信息,1 个是 crm_sources 与产品相关的来源。

现在这是输出:

现在您可以看到总计数显示在其来源旁边的每个标题下。如图所示,每个来源有 8 个单元格。现在这些计数值在一个标签内,一旦点击就可以查看所有页面。

现在这里基本上我想显示我点击的项目的数据。例如,如果我点击 Hot 状态下的 163,它会将我带到 viewall 页面并在表格中显示所有处于 Hot 状态下的人的 id、source、enquiry_date。

所以基本上它应该检测点击哪个来源和哪个状态的数据,然后相应地做出这样的声明?

select * from crm_leads where lead_source = '.$source.' and lead_status = '.$status.';

我想我可以在这里做的另一件事是将我的表格放在一个表单中,并将这些值作为帖子传递到我的控制器类leadstatus中,这会将那个值传递给viewall?不太确定如何进行。

模型类:

function get_statusreport($fdate='',$tdate='')
    {
        $this->db->select("l.lead_status,crm_sources.title,count(*) as leadnum,l.enquiry_date,l.sub_status");
        $this->db->from($this->table_name." as l");
        if($fdate !='')
            $this->db->where("date(l.added_date) >=",date('Y-m-d',strtotime($fdate)));
        if($tdate !='')
            $this->db->where("date(l.added_date) <=",date('Y-m-d',strtotime($tdate)));
        $this->db->where("lead_status <>",10);
        $this->db->join("crm_sources ","crm_sources.id= l.lead_source","left");
        $this->db->group_by("l.lead_status,crm_sources.title");
        $this->db->order_by("leadnum DESC, crm_sources.title ASC,l.lead_status ASC");
        $query = $this->db->get();
        $results = $query->result_array();
        return $results;
    }

控制器类(leadstatus 保存我当前表的视图):

public function leadstatus($slug='')
    {
        $content='';
        $content['groupedleads'] = $this->leads_model->get_statusreport($fdate,$tdate);
        $this->load->view('crm/main',$main);    
        $this->load->view('crm/reports/leadstatus',$content);
    }

public function viewall($slug='')
    {
        $content='';
        $this->load->view('crm/main',$main);    
        $this->load->view('crm/reports/viewall',$content);
    }

查看类:

<?php
    $ls_arr = array(1=>'Open',8=>'Hot',2=>'Closed',3=>'Transacted',4=>'Dead'); 
     foreach($groupedleads as $grplead){
        $statuses[] = $status = $ls_arr[$grplead["lead_status"]];
        if($grplead["title"] == NULL || $grplead["title"] == '')
            $grplead["title"] = "Unknown";
        if(isset($grplead["title"]))
            $titles[] = $title = $grplead["title"];
        $leaddata[$status][$title] = $grplead["leadnum"];
    }

    if(count($titles) > 0)
      $titles = array_unique($titles);
    if(count($statuses) > 0)
      $statuses = array_unique($statuses);
    
?>
<table>
<tr">
            <th id="status">Source</th>
             <?php
              if(count($statuses) > 0)
              foreach($statuses as $status){
            ?><th id=<?php echo $status; ?>><?php echo $status; ?></th>
            <?php
              }
            ?>
            <th>Total</th>
          </tr>
<?php
          if(is_array($titles))
            foreach($titles as $title){ 
          ?>
              <tr>
                  <?php 
                    $total = 0;
                    echo "<td>".$title."</td>";
                    foreach ($statuses as $status) {
                        $num = $leaddata[$status][$title];
                        echo "<td><a target='_blank' href='".site_url('reports/viewall')."'>".$num."</a></td>";
                        $total += $num; 
                        $sum[$status] += $num;
                    }
                    echo "<td>".$total."</td>";
                    $grandtotal += $total; 
                   ?>
              </tr>
          <?php } ?>
</table>

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    您可以像这样在 URL 中包含来源和状态:

    foreach ($statuses as $status) {
                $num = $leaddata[$status][$title];
                echo "<td><a target='_blank' href='" . site_url('reports/viewall?source=' . $source . '&status=' . $status) . "'>" . $num . "</a></td>";
                $total += $num;
                $sum[$status] += $num;
            }
    

    然后在你的控制器中:

    public function viewall($slug = '')
    {
        $content = '';
        $source = $this->input->get('source');
        $status = $this->input->get('status');
        // Do what you want with $source and $status
        $this->load->view('crm/main', $main);
        $this->load->view('crm/reports/viewall', $content);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      相关资源
      最近更新 更多