jquery
  • codeigniter
  • pagination
  • 2010-12-04 99 views 2 likes 
    2

    我一直在这个问题上困扰了好几天,并且我对这个问题很担心......我不知道我在做什么错,或者我应该寻找帮助。Codeigniter与jQuery分页

    我有一个搜索页面,允许用户筛选一些类别的结果。

    这是视图:

    <form method="post" id="search_form" name="search_form"> 
    <input type='hidden' id='seeking_gender_id' value='<?php echo $profile->gender_id ?>'/> 
    
    <div id='sidebar_wrapper'> 
        <div id='sidebar'> 
        <div class="slider_header"> 
        Country 
        </div> 
        <div class="slider_content"> 
        <select id="country_dropdown" name="country_dropdown"> 
        <?php 
        if($countries->num_rows() > 0) 
        { 
         foreach($countries->result() as $row) 
         { 
         $selected = ($row->country_id == $profile->country_id ? "selected='yes'" : ""); 
         echo "<option value='" . $row->country_id . "' " . $selected . ">" . $row->country ."</option>"; 
         } 
        } 
        ?> 
        </select> 
        </div> 
        <div class="slider_header"> 
        Region 
        </div> 
        <div class="slider_content"> 
        <select id='region_dropdown' name='region_dropdown'> 
        <option value="0">All regions</option> 
        <?php 
         if($regions->num_rows() > 0) 
         { 
         foreach($regions->result() as $row) 
         { 
         $selected = ($row->region_id == $profile->region_id ? "selected='yes'" : ""); 
         echo "<option value='" . $row->region_id . "' " . $selected . ">" . $row->region ."</option>"; 
         } 
         } 
        ?> 
        </select> 
        </div> 
        <div class="slider_header"> 
        Gender 
        </div> 
        <div class="slider_content"> 
        <?php 
        $male_checked = ($profile->seeking_gender_id == 1 ? "checked='yes'" : ""); 
        $female_checked = ($profile->seeking_gender_id == 2 ? "checked='yes'" : ""); 
        ?> 
        <input id='male_checkbox' type="checkbox" name="genders" <?php echo $male_checked ?> value="1" /> 
        Male 
        <br/> 
        <input id='female_checkbox' type="checkbox" name="genders" <?php echo $female_checked ?> value="2" /> 
        Female 
        </div> 
        <div class="slider_header"> 
        Age 
        </div> 
        <div class="slider_content"> 
        Between 
        <input id="min_age" type="text" maxlength="2" style="width: 35px" value='<?php echo $profile->min_age ?>'/> 
        and 
        <input id="max_age" type="text" maxlength="2" style="width: 35px" value='<?php echo $profile->max_age ?>'/> 
        </div> 
        <input id='profile_search_button' type='button' value='Search'></input> 
        </div> 
        <div id='sidebar_content'> 
        <div id='content_header'> 
        Search 
        <div id='profiles_found' style='float: right'>0</div> 
        </div> 
        <div id='search_results'></div> 
        </div> 
        <div id='sidebar_footer'></div> 
    </div> 
    </form> 
    

    所以,当点击 “profile_search_button” 的时候,下面的jQuery代码运行:

    $("#profile_search_button").click(function() 
    { 
        $('#search_results').hide(); 
    
        $.post("http://localhost/index.php/search/search_database", 
        function(data) 
        { $('#search_results').html(data); 
        $('#search_results').slideDown('slow'); 
        }); 
    }); 
    

    该函数调用下面的PHP函数:

    public function search_database() 
    { 
    // HOW AM I MEANT TO GET THE VALUES OF THE FORM FILTERS? eg: country_id, region_id etc 
    
    $this->load->library('Jquery_pagination'); 
    
    $config['base_url'] = site_url('search/blahh/'); 
    $config['total_rows'] = 100; 
    $config['per_page'] = '10'; 
    $config['div'] = '#search_results'; 
    
    $this->jquery_pagination->initialize($config); 
    echo $this->jquery_pagination->create_links(); 
    } 
    

    上面的代码工作...我只是不知道如何读取过滤器的值“search_database”PHP函数。

    我已经工作过这个例子,但是这就是我似乎可以找到:

    http://tohin.wordpress.com/2008/10/07/codeigniter-ajax-pagination-exampleguideline/

    任何人能帮助我们吗?

    +0

    呃......代码在预览窗口中看起来不错。它只是不是我的一天:(。 – 2010-12-04 18:07:13

    回答

    3

    使用$ .post的'data'部分。

    http://api.jquery.com/jQuery.post/

    $.ajax({ 
        type: 'POST', 
        url: url, 
        data: { $('#form_field').val() }, 
        etc. 
    
    +0

    似乎我发布了旧版本的代码。我将以下JSON值传递给PHP函数{“serialised_form”:$('#search_form')。serialize()} 我可以使用$ this-> input-> post('serialised_form')从PHP方法访问此数据。 但是,当我单击分页链接时,表单值不会发送... – 2010-12-04 18:43:09

    0

    得到它的工作家伙。只是一些愚蠢的错误。 只好连载的形式数据,而不是发送它作为一个JSON对象

    $("#profile_search_button").click(function() 
    { 
        $('#search_results').hide(); 
    
        $.post("http://localhost/index.php/search/search_database", serialize_form(), 
        function(data) 
        { 
         $('#search_results').html(data); 
         $('#search_results').slideDown('slow'); 
        }); 
    }); 
    

    和事实证明,“additional_param”是工作毕竟。

    相关问题