| 

.NET C# Java Javascript Exception

1
Hi,
ich stehe seit einer Weile ein wenig aufn Schlauch..

In Wordpress (aktuelle V. 3.4.1) habe ich ein Dropdown der Custom Post Type's Beats und Tracks.

<label for="post_type">Beat oder Track</label><br />
<select class="postform" id="post_type" name="type">
<option value="beats" class="level-0">Beat</option>
<option value="tracks" class="level-0">Track</option>
</select>


Jetzt möchte ich erreichen, dass je nach Auswahl (Beats oder Tracks) die jeweiligen Kategorien bzw. Custom Taxonomies (beatstyle oder trackstyle) im nächsten Dropdown zu Auswahl stehen.

<label for="post_Category">Category:</label><br />
<?php $args = array(
'orderby' => 'ID',
'order' => 'ASC',
'name' => 'cat',
'id' => 'post_cat',
'class' => 'postform',
'taxonomy' => 'beatstyle',
'hide_empty' => 0
); ?>
<?php wp_dropdown_categories( $args ); ?>


Das ganze am besten ohne Seite neu laden.


EDIT:
### LÖSUNG ###

Ich habe es nun folgendermaßen gelößt:

In der Template-Datei, wo das Dropdown sein soll, nach
<?php get_header(); ?>

das folgende JavaScript einfügen
<script type="text/javascript">
$(function(){
$('#main_cat').change(function(){
var $mainCat=$('#main_cat').val();

// call ajax
$("#sub_cat").empty();
$.ajax({
url:"/wp-admin/admin-ajax.php",
type:'POST',
data:'action=my_special_action&main_catid=' + $mainCat,

success:function(results)
{
// alert(results);
$("#sub_cat").removeAttr("disabled");
$("#sub_cat").append(results);
}
});
}
);
});

</script>


Dann die Dropdowns platzieren:
<label for="main_cat">test:</label><br />
<select class="main_cat" id="main_cat" name="main_cat">
<option value="beats" class="level-0">Beat</option>
<option value="tracks" class="level-0">Track</option>
</select>
<select name="sub_cat" id="sub_cat" disabled="disabled"></select>


In der functions.php dann folgenden code hinzufügen:
function implement_ajax() {
if(isset($_POST['main_catid']))
{
if ($_POST['main_catid'] == 'beats') { $termname = 'style'; } elseif ($_POST['main_catid'] == 'tracks') { $termname = 'trackstyle'; }
$categories = get_terms( $termname, 'orderby=count&hide_empty=0' );
foreach ($categories as $cat) {
$option .= '<option value="'.$cat->term_id.'">';
$option .= $cat->name;
//$option .= ' ('.$cat->category_count.')';
$option .= '</option>';
}
echo $option;
die();
} // end if
}
add_action('wp_ajax_my_special_action', 'implement_ajax');
add_action('wp_ajax_nopriv_my_special_action', 'implement_ajax');//for users that are not logged in.


Der Code muss selbstverständlich an die eigene Bedürfnisse angepasst werden und beinhaltet hier meine Werte für die terms usw.
News:
10.07.2012
chrispo 275 7
Habe die Lösung gefunden und in die Frage editiert, falls noch jemand das Problem hat.
chrispo 10.07.2012