Вот моя форма, и мой текущий URL-адрес.../pg/members/all
<form id="simplesearch" name="simplesearch" action="<?php echo $vars['url'];?>pg/members/searchuser" method="post">
<table class="people_search" style="border:none;">
<div id="toggle_profile_type">
<input type="hidden" value="0" name="meta_data_array_search_criteria[custom_profile_type]">
<p class="skills_even1"><input type="checkbox" name="meta_data_array_search_criteria[custom_profile_type][]" value="39242" class="messageCheckbox"><span>Job Seeker</span></p>
<p class="skills_odd1"><input type="checkbox" name="meta_data_array_search_criteria[custom_profile_type][]" value="39243" class="messageCheckbox"><span>Employer</span></p>
<p class="skills_even1"><input type="checkbox" name="meta_data_array_search_criteria[custom_profile_type][]" value="39449" class="messageCheckbox"><span>college</span></p>
</div>
</table>
</form>
В сценарии я написал
$(document).ready(function(){
$(":checkbox").click(function(){
simplesearchsubmitform();
});
});
function simplesearchsubmitform()
{
if(document.simplesearchonsubmit && !document.simplesearch.onsubmit()) {
return;
}
document.simplesearch.submit();
}
Я отправляю форму, после чего URL изменяется.... /pg/members/searchuser. Теперь мне нужно получить выбранные checkbox
. Чтобы я мог добавить это значение в div, флажок останется выбранным.
Есть идеи, как это сделать? Я много искал, но я не нашел решение. PLZ помочь мне, ребята..
В разделе "pg/members/searchuser"
Обновление 2.0 Вы используете этот код:
<?php
if(isset($_POST['meta_data_array_search_criteria']))
{
foreach($_POST['meta_data_array_search_criteria'] as $val)
{
foreach($val as $checkbox_data)
{
echo $checkbox_data."<br/>";
}
}
} else
{
echo "No checkbox checked";
}
?>
Как выбрать флажки: Есть 2 метода, с JS или с PHP. Фрагмент jQuery:
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
<?php
if(isset($_POST['meta_data_array_search_criteria']))
{
foreach($_POST['meta_data_array_search_criteria'] as $val)
{
foreach($val as $checkbox_data)
{
?>
$('input:checkbox[value="<?php echo $checkbox_data;?>"]').attr('checked','checked');
<?php
}
}
} else
{
echo "No checkbox checked";
}
?>
})
</script>
Что оно делает? Он выберет те флажки, значения которых мы получили от $ _POST.
$_POST['meta_data_array_search_criteria[custom_profile_type]']
Вы можете проверить этот образец, он отобразит проверенное значение на основе сообщения
<?php
if (isset($_POST['meta_data_array_search_criteria'])){
$data = $_POST['meta_data_array_search_criteria'];
if (is_array($data['custom_profile_type'])){
//check and display checked value
if (in_array('39242', $data['custom_profile_type']))
echo '<p class="skills_even1"><input type="checkbox" name="meta_data_array_search_criteria[custom_profile_type][]" value="39242" class="messageCheckbox" checked><span>Job Seeker</span></p>';
else
echo '<p class="skills_even1"><input type="checkbox" name="meta_data_array_search_criteria[custom_profile_type][]" value="39242" class="messageCheckbox"><span>Job Seeker</span></p>';
if (in_array('39243', $data['custom_profile_type']))
echo '<p class="skills_odd1"><input type="checkbox" name="meta_data_array_search_criteria[custom_profile_type][]" value="39243" class="messageCheckbox" checked><span>Employer</span></p>';
else
echo '<p class="skills_odd1"><input type="checkbox" name="meta_data_array_search_criteria[custom_profile_type][]" value="39243" class="messageCheckbox"><span>Employer</span></p>';
if (in_array('39449', $data['custom_profile_type']))
echo '<p class="skills_even1"><input type="checkbox" name="meta_data_array_search_criteria[custom_profile_type][]" value="39449" class="messageCheckbox" checked><span>college</span></p>';
else
echo '<p class="skills_even1"><input type="checkbox" name="meta_data_array_search_criteria[custom_profile_type][]" value="39449" class="messageCheckbox"><span>college</span></p>';
}
else{
//display all unchecked
echo '<p class="skills_even1"><input type="checkbox" name="meta_data_array_search_criteria[custom_profile_type][]" value="39242" class="messageCheckbox"><span>Job Seeker</span></p>';
echo '<p class="skills_odd1"><input type="checkbox" name="meta_data_array_search_criteria[custom_profile_type][]" value="39243" class="messageCheckbox"><span>Employer</span></p>';
echo '<p class="skills_even1"><input type="checkbox" name="meta_data_array_search_criteria[custom_profile_type][]" value="39449" class="messageCheckbox"><span>college</span></p>';
}
}
?>
Попробуйте ввести значения в массив следующим образом:
var values = new Array();
$.each($("input[name='meta_data_array_search_criteria[custom_profile_type][]']:checked"), function() {
values.push($(this).val());
});
Вы отправляете эту форму с POST на новый URL. Поэтому вам нужно поймать все значения с помощью PHP, а не с помощью JavaScript. В ".../pg/members/searchuser" вы просто запрашиваете все $ _POST, а затем выбираете свои флажки с этими значениями.
$(this).val()
затем передать его вsimplesearchsubmitform
в качестве аргумента