是否有方法删除传输到其他选项卡的数据?避免在同一页中重复?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
只是数组
你能帮我一下吗,先生?