是否有方法删除传输到其他选项卡的数据?避免在同一页中重复?PHP代码点火器

是否有方法删除传输到其他选项卡的数据?避免在同一页中重复?PHP代码点火器,php,codeigniter,Php,Codeigniter,我正在创建一个测验应用程序,所以概念是当测验提交并成功评分后,它将移动到我已成功完成的第一个选项卡中,但问题是,第二个选项卡,即我已回答的测验名称仍然可见,我如何在回答考试后将其删除或使其消失 public function class_groups($id){ $this->db->select('*'); $this->db->from('posts'); $this->db->join('results', 'results.po

我正在创建一个测验应用程序,所以概念是当测验提交并成功评分后,它将移动到我已成功完成的第一个选项卡中,但问题是,第二个选项卡,即我已回答的测验名称仍然可见,我如何在回答考试后将其删除或使其消失

public function class_groups($id){
    $this->db->select('*');
    $this->db->from('posts');
    $this->db->join('results', 'results.post_id  = posts.id');
    $this->db->where('class_id', $id);
    $this->db->where('student_id', $this->session->userdata('user_id'));
    $this->db->group_by('posts.activity');
    $query = $this->db->get();
    return $result = $query->result_array();
}
到目前为止,我已经使用它来删除,但问题是在我回答活动后,只有第一个索引正在从第二个选项卡中删除

第一个标签-这是考试的结果

<?php foreach($results as $result): ?>
    <?php 
     $res = $result['activity'];  ?>
    
    <h4><?php echo $result['activity']; ?></h4>

<?php endforeach; ?>
考试结果和考试后查看的模型

public function class_groups($id){
    $this->db->select('*');
    $this->db->from('posts');
    $this->db->join('results', 'results.post_id  = posts.id');
    $this->db->where('class_id', $id);
    $this->db->where('student_id', $this->session->userdata('user_id'));
    $this->db->group_by('posts.activity');
    $query = $this->db->get();
    return $result = $query->result_array();
}
var\u dump($post)


在第一个选项卡代码中循环$results时,您退出循环,并为$res分配了一个值,该值在第二个选项卡代码中不会更改。这就是为什么只有一个索引被排除在第二个选项卡之外。要解决此问题,请将$post与$results中存储的所有值进行比较

如果$results数组包含所有已回答的测验,则可以在循环$posts时检查$results是否包含$post在_数组中的值。下面是一个示例代码:

if (!in_array($post, $results)) { //search in $results for $post
   // Show the Quiz since it has not been answered
}
我建议创建一个新数组,在第一个选项卡的循环中保存$res的每个新值,并使用上面相同的逻辑

第一个选项卡的新代码

<?php $newArray = array();
      foreach($results as $result):
      $res = $result['activity'];
      array_push($newArray, $res) ?>
      <h4><?php echo $result['activity']; ?></h4>
<?php endforeach; ?>
<?php foreach($posts as $post): 
      $pos = $post['activity']; 
      if (!in_array($pos, $newArray)): ?>
      <a href="<?php echo base_url();?>activity/start/<?php echo $post['id'];?>/<?php echo $id;?>"> 
      <?php echo $post['activity']; ?> 
      </a>
      <?php endif; ?>
<?php endforeach; ?>

第二个选项卡的新代码

<?php $newArray = array();
      foreach($results as $result):
      $res = $result['activity'];
      array_push($newArray, $res) ?>
      <h4><?php echo $result['activity']; ?></h4>
<?php endforeach; ?>
<?php foreach($posts as $post): 
      $pos = $post['activity']; 
      if (!in_array($pos, $newArray)): ?>
      <a href="<?php echo base_url();?>activity/start/<?php echo $post['id'];?>/<?php echo $id;?>"> 
      <?php echo $post['activity']; ?> 
      </a>
      <?php endif; ?>
<?php endforeach; ?>

在第一个选项卡代码中循环通过$results时,您退出循环,并为$res分配了一个值,该值在第二个选项卡代码中不会更改。这就是为什么只有一个索引被排除在第二个选项卡之外。要解决此问题,请将$post与$results中存储的所有值进行比较

如果$results数组包含所有已回答的测验,则可以在循环$posts时检查$results是否包含$post在_数组中的值。下面是一个示例代码:

if (!in_array($post, $results)) { //search in $results for $post
   // Show the Quiz since it has not been answered
}
我建议创建一个新数组,在第一个选项卡的循环中保存$res的每个新值,并使用上面相同的逻辑

第一个选项卡的新代码

<?php $newArray = array();
      foreach($results as $result):
      $res = $result['activity'];
      array_push($newArray, $res) ?>
      <h4><?php echo $result['activity']; ?></h4>
<?php endforeach; ?>
<?php foreach($posts as $post): 
      $pos = $post['activity']; 
      if (!in_array($pos, $newArray)): ?>
      <a href="<?php echo base_url();?>activity/start/<?php echo $post['id'];?>/<?php echo $id;?>"> 
      <?php echo $post['activity']; ?> 
      </a>
      <?php endif; ?>
<?php endforeach; ?>

第二个选项卡的新代码

<?php $newArray = array();
      foreach($results as $result):
      $res = $result['activity'];
      array_push($newArray, $res) ?>
      <h4><?php echo $result['activity']; ?></h4>
<?php endforeach; ?>
<?php foreach($posts as $post): 
      $pos = $post['activity']; 
      if (!in_array($pos, $newArray)): ?>
      <a href="<?php echo base_url();?>activity/start/<?php echo $post['id'];?>/<?php echo $id;?>"> 
      <?php echo $post['activity']; ?> 
      </a>
      <?php endif; ?>
<?php endforeach; ?>


您好,先生,我理解您的解释,我尝试了您的代码和逻辑,但是在回答考试后,它仍然给出相同的结果,即在第二个选项卡上显示未回答的考试。请确保用活动名称替换$post,并用包含所有活动的数组替换$results。向我们展示您的阵列所包含内容的示例可能会有所帮助。我建议在第一个选项卡循环之前创建一个新数组,然后在每个新的$res值之后,使用array\u push($newarray,$res)。最后使用if(!in_array($pos,$newarray))在$newarray中查找$pos。哦,你的意思是我不会删除我创建的$post和$res吗?-请查看上面编辑的代码,并查看
$post
的数组,但是
$results
var\u dump
只是
数组
你能帮我一下吗,我理解你的解释,我尝试了你的代码和逻辑,但是在回答考试后,它仍然给出相同的结果,即在第二个选项卡上显示未回答的考试。请确保用活动名称替换$post,并用包含所有活动的数组替换$results。向我们展示您的阵列所包含内容的示例可能会有所帮助。我建议在第一个选项卡循环之前创建一个新数组,然后在每个新的$res值之后,使用array\u push($newarray,$res)。最后使用if(!in_array($pos,$newarray))在$newarray中查找$pos。哦,你的意思是我不会删除我创建的$post和$res吗?-请查看上面编辑的代码,并查看
$post
的数组,但是
$results
var\u dump
只是
数组
你能帮我一下吗,先生?