Uradio sam deo sajta na kome se prikazuju komentari. E sad kada se izbace svi komentari sve radi odlicno, i paginacija izlistava lepo 6 po 6 i dovlaci ih tako. medjutim hteo sam da napravim pretragu komentara tako sto ce iz <select> polja da se odabere odredjeni korisnik i da izlista sve poruke samo od njega. U tom trenutku imam dve greske <div> u kome su komentari se prepolovi u sirinu. Naime <div class="cimments" > se odradi ponovo i prepolovi drugi put polje za komentare. Drugi problem je to sto kada odaberem ime i kada izlista po imenu ako iskoristim paginaciju on vraca sve rezultate a ne samo ono sto je uradjeno pretragom.
Da bi vam bilo jasnije sta je problem pogledajte ovde na sajtu kako to izgleda http://despotbg.totalh.com/messages/index
Odaberite ime test1 jer ima dovoljno unosa da radi paginaciju.
VIEW
Code:
<script type="text/javascript">
function showUser(str)
{
*provera browsera odradjena
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","<?php echo base_url(); ?>messages/index?name="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<div class="comments" id="txtHint">
<div>
Prikazi poruke od:
<form>
<select class="filter" onchange="showUser(this.value)">
<option value="">Odaberite ime:</option>
<?php while ($row = mysql_fetch_assoc($just_name)) {
echo '<option value=' . $row['name'] . '>' . $row['name'] . '</option>';
} ?>
</select>
</form>
</div>
<br />
<div>
<?php
echo '<br>';
foreach ($result->result() as $post):
// echo $post->id, '<br />';
echo $post->text . "<hr>";
echo '<font color="blue"> Ime: </font>' . $post->name . ' ';
echo '<font color="blue"> Vrsta: </font>' . $post->selection, ' ';
echo '<font color="blue"> Vreme: </font>' . $post->time;
echo '<br>';
echo '<br>';
endforeach;
echo '<br/>';
echo $this->jquery_pagination->create_links();
echo '<br/>';
<script type="text/javascript">
function showUser(str)
{
*provera browsera odradjena
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","<?php echo base_url(); ?>messages/index?name="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<div class="comments" id="txtHint">
<div>
Prikazi poruke od:
<form>
<select class="filter" onchange="showUser(this.value)">
<option value="">Odaberite ime:</option>
<?php while ($row = mysql_fetch_assoc($just_name)) {
echo '<option value=' . $row['name'] . '>' . $row['name'] . '</option>';
} ?>
</select>
</form>
</div>
<br />
<div>
<?php
echo '<br>';
foreach ($result->result() as $post):
// echo $post->id, '<br />';
echo $post->text . "<hr>";
echo '<font color="blue"> Ime: </font>' . $post->name . ' ';
echo '<font color="blue"> Vrsta: </font>' . $post->selection, ' ';
echo '<font color="blue"> Vreme: </font>' . $post->time;
echo '<br>';
echo '<br>';
endforeach;
echo '<br/>';
echo $this->jquery_pagination->create_links();
echo '<br/>';
Controller
Code:
public function index () {
//$name=NULL;
if(isset($_GET["name"])){
$name=$_GET["name"];
}else{
$name=NULL;
}
$this->load->model('messages_model');
$per_page = 6;
$total = $this->messages_model->count_posts($name);
$data['all_names'] = $this->messages_model->get_posts($total);
$data['just_name'] = $this->messages_model->just_names();
$data['result'] = $this->messages_model->get_posts($per_page, $this->uri->segment(3), $name);
$base_url = base_url() . 'messages/index';
$config['base_url'] = $base_url;
$config['total_rows'] = $total;
$config['per_page'] = $per_page;
$config['uri_segment'] = '3';
$this->jquery_pagination->initialize($config);
if(!isset($_GET["name"])){
$data['activeMessages']= '';
$this->load->view('header_view', $data); }
$this->load->view('messages_home', $data);
}
public function index () {
//$name=NULL;
if(isset($_GET["name"])){
$name=$_GET["name"];
}else{
$name=NULL;
}
$this->load->model('messages_model');
$per_page = 6;
$total = $this->messages_model->count_posts($name);
$data['all_names'] = $this->messages_model->get_posts($total);
$data['just_name'] = $this->messages_model->just_names();
$data['result'] = $this->messages_model->get_posts($per_page, $this->uri->segment(3), $name);
$base_url = base_url() . 'messages/index';
$config['base_url'] = $base_url;
$config['total_rows'] = $total;
$config['per_page'] = $per_page;
$config['uri_segment'] = '3';
$this->jquery_pagination->initialize($config);
if(!isset($_GET["name"])){
$data['activeMessages']= '';
$this->load->view('header_view', $data); }
$this->load->view('messages_home', $data);
}
model
Code:
function get_posts($limit = NULL, $offset = NULL, $name="")
{
if(isset($name)){
$this->db->where('name', $name); }
$this->db->limit($limit, $offset);
$this->db->order_by("id", "desc");
return $this->db->get('messages');
}
function count_posts_name($name)
{
$this->db->like('name', $name);
return $this->db->count_all_results('messages');
}
function get_posts($limit = NULL, $offset = NULL, $name="")
{
if(isset($name)){
$this->db->where('name', $name); }
$this->db->limit($limit, $offset);
$this->db->order_by("id", "desc");
return $this->db->get('messages');
}
function count_posts_name($name)
{
$this->db->like('name', $name);
return $this->db->count_all_results('messages');
}
[Ovu poruku je menjao despotbg dana 28.02.2012. u 19:07 GMT+1]