Я использую этот код, чтобы проверить, какие теги используются в категории Wordpress. Он отображает список флажков. Я хочу, чтобы форма запоминала мой выбор после отправки.Как запомнить выбор флажка после отправки?
Это мой код:
<form name="tags" onChange="document.forms.tags.submit();">
<?php
if (is_category()){
$cat = get_query_var('cat');
$yourcat = get_category ($cat);
}
$tag_IDs = array();
query_posts('category_name='.$yourcat->slug);
if (have_posts()) : while (have_posts()) : the_post();
$posttags = get_the_tags();
if ($posttags):
foreach($posttags as $tag) {
if (!in_array($tag->term_id , $tag_IDs)):
$tag_IDs[] = $tag->term_id;
$tag_names[$tag->term_id] = $tag->name;
$tag_slug[$tag->term_id] = $tag->slug;
endif;
}
endif;
endwhile; endif;
wp_reset_query();
if (!empty($tag_IDs)){
echo '<h3>Het meest geschikt voor</h3>';
echo "<input type=\"radio\" name=\"tag\" value=\"\"> Alles weergeven<br>";
}
foreach($tag_IDs as $tag_ID){
echo '<input type="radio" name="tag" value="'.$tag_slug[$tag_ID].'"> '.$tag_names[$tag_ID].'<br>';
}
?>
</form>
Прежде чем я использовал этот код, чтобы запомнить выбор, но он не работает с приведенным выше кодом больше:
if((isset($_GET["tag"])) && $_GET["tag"] == "tag-example") { echo "checked";}
Я думал, что это будет работают, как это, но это не так:
echo '<input type="radio" name="tag" value="'.$tag_slug[$tag_ID].'" '.if((isset($_GET["tag"])) && $_GET["tag"] == "oudere-kinderen") { echo "checked";}.'> '.$tag_names[$tag_ID].'<br>';
Как я могу получить форму для запоминания выбора флажка?
Решение:
С помощью @Jouke я пришел к этому решению:
if (is_category()){ $cat = get_query_var('cat'); $yourcat = get_category ($cat); } $tag_IDs = array(); query_posts('category_name='.$yourcat->slug); if (have_posts()) : while (have_posts()) : the_post(); $posttags = get_the_tags(); if ($posttags): foreach($posttags as $tag) { if (!in_array($tag->term_id , $tag_IDs)): $tag_IDs[] = $tag->term_id; $tag_names[$tag->term_id] = $tag->name; $tag_slug[$tag->term_id] = $tag->slug; endif; } endif; endwhile; endif; wp_reset_query(); if (!empty($tag_IDs)){ echo '<h3>Het meest geschikt voor</h3>'; echo "<input type=\"radio\" name=\"tag\" value=\"\"> Alles weergeven<br>"; } foreach($tag_IDs as $tag_ID){ $test = $tag_slug[$tag_ID]; echo '<input type="radio" name="tag" value="'.$test.'"' ; if((isset($_GET["tag"])) && $_GET["tag"] == $test) { echo ' checked="checked"'; } echo '> '.$tag_names[$tag_ID].'<br>'; }
Если я использую 'echo ' '. $ tag_names [$ tag_id].
'; 'then' checked =' checked'' отображается на самой странице. – edow
Предполагается, что он выводит not checked = 'checked', но только что отмечен – Jouke
Он только дает 'checked = 'checked'' для каждого тега, поэтому сама страница (не только в исходном коде) я вижу, например, десять раз строку 'checked = 'checked'', если есть десять тегов. – edow