2010-12-04 2 views
2

Я застрял в этой проблеме в течение нескольких дней, и я про трещину ... Я понятия не имею, что я делаю неправильно или где я должен искать помощь.Codeigniter pagination с 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(); 
} 

Код выше работает ... Я просто не знаю, как читать значения фильтров из функция PHP «search_database».

Я отработка этого примера, но это все, что я могу найти:

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

Кто-нибудь может помочь?

+0

uhh ... код выглядел отлично в окне предварительного просмотра. Его просто не мой день :( – 2010-12-04 18:07:13

ответ

3

Используйте раздел «данные» в $ .post.

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

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

Кажется, что я опубликовал более старую версию кода. Я передал следующее значение JSON функции PHP {"serialized_form": $ ('# search_form'). Serialize()} Я могу использовать $ this-> input-> post ('serialized_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» работал в конце концов.