我已经被困在这个问题好几天了,而且是关于破解...我不知道我做错了什么或者我应该寻求帮助。
我有一个搜索页面,允许用户按照多个类别过滤结果。
这是观点:
<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 :(得分:3)
使用$ .post。
的'data'部分http://api.jquery.com/jQuery.post/
$.ajax({
type: 'POST',
url: url,
data: { $('#form_field').val() },
etc.
答案 1 :(得分: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'毕竟是有效的。