web-dev-qa-db-fra.com

Filtrer Sélectionner les résultats en fonction de la sélection

J'essaie de filtrer les résultats des travaux qui sont rendus sur la page chaque fois que l'utilisateur modifie l'élément sélectionné sur mon formulaire. Les éléments sélectionnés sont renseignés dynamiquement par le code ci-dessous, qui leur attribue une valeur de leur slug et de leur libellé.

        <div style="background: url('<?php bloginfo( 'template_directory'); ?>/images/drop-arrow2.png') no-repeat;" id="cat-select">
            <form name="job_select" action="<?php bloginfo('url'); ?>/jobs.php" method="get">
                <select class="job_cats" name="position_name" onchange='<?php echo ".$category->category_nicename."; ?>'>
                         <?php 
                              // For every child of blog
                              $post_count = 1;
                              $categories =  get_categories('child_of=16'); 
                              foreach ($categories as $category) {
                                $option = '<option value="'.$category->category_nicename.'">';
                                $option .= $category->cat_name;
                                $option .= '</option>';
                                echo $option;
                                $post_count++;
                              }
                         ?> 
                </select>
            </form>
    </div>

Le code passe ensuite à la boucle WP principale où tous mes messages sont rendus sur la page à l'aide de cette requête -

    <?php 
    $node_id = 0;
    $args = array(
        'post_type' => 'jobs',
        'category_name' => $_GET['position_name']
    );

    $the_query = new WP_Query( $args );


?>

Je veux que le $category->cat_name (le slug) soit dans l'argument 'category_name' pour filtrer les résultats, mais je ne sais pas comment je peux a) rendre la page actualisée pour afficher ces nouveaux résultats filtrés (aurais-je besoin de AJAX faire cela?) et b) Comment puis-je passer l’index sélectionné de la zone de sélection à 'nom_catégorie' en tant que paramètre, j’ai essayé d’utiliser $_GET['position_name'] mais cela n’a donné aucun résultat.

Pour donner un aperçu visuel de l'apparence de ma page, une capture d'écran peut être vue ici Forme Screengrab toute suggestion serait grandement appréciée.

1
Alex Sims

Vu que mes commentaires semblaient répondre à la question:

Pour accéder aux paramètres d’URL que vous souhaitez $wp_query->query_vars['myvar']: http://wordpress.org/support/topic/how-to-pass-value-in-wordpress-url , par exemple:

<?php
global $wp_query; 
$node_id = 0;
$args = array(
    'post_type' => 'jobs',
    'category_name' => $wp_query->query_vars['position_name']
);

$the_query = new WP_Query( $args );

Les autres parties de la question ne sont pas vraiment des problèmes WordPress, donc Stack Overflow est le meilleur endroit pour les poser. Pour mettre à jour la page, vous pouvez soit la rediriger sur elle-même en utilisant une redirection javascript pour l'événement onchange , soit vous pouvez utiliser AJAX pour mettre à jour le contenu de l'événement onchange sans actualisation de la page.

1
icc97