2015-01-15 61 views
0

我知道有很多問題要求相同的事情,但是當涉及到函數時我會迷失方向。 我使用存儲在WordPress的functions.php一個PHP函數,我可以從模板,以便調用一個下拉菜單內得到在那裏我調用函數存儲在分類傳遞下拉選擇的分類數據以提交操作和搜索

function custom_taxonomy_dropdown($taxonomy, $exclude = array(''), $name, 
$show_option_all = null) 
{ 
$args = array(
    'exclude' => $exclude, 
    'order' => $order, 
    'hide_empty' => 1, 
    'order' => 'ASC', 
    'echo' => 1 
); 
$terms = get_terms($taxonomy, $args); 
$name = ($name) ? $name : $taxonomy; 
if ($terms) { 
    printf('<select name="%s" class="postform">', esc_attr($name)); 
    if ($show_option_all) { 
    printf('<option value="0">%s</option>', esc_html($show_option_all)); 
    } 
    foreach ($terms as $term) { 
    printf('<option value="%s">%s</option>', esc_attr($term->slug), 
esc_html($term- >name) ); 
    } 
    print('</select>'); 
    } 
} 

模板文件中的所有數據:

// Other func to get the ids of tags and categories to exclude in the dropdown; irrelevant 
$noticias_ID = get_category_id('Noticias'); 
$estrenos_ID = get_tag_id('estrenos'); 
$proximamente_ID = get_tag_id('proximamente'); 
$peliculas_ID = get_tag_id('peliculas'); 

// Calling the function of above and writing parameters about taxonomies 
custom_taxonomy_dropdown('category', ''.$noticias_ID, 'category', 'Select All'); 
custom_taxonomy_dropdown('actor', '', 'actor', 'Select All'); 
custom_taxonomy_dropdown('director', '', 'director', 'Select All'); 
custom_taxonomy_dropdown('escritor', '', 'escritor', 'Select All'); 
custom_taxonomy_dropdown('post_tag', 
''.$estrenos_ID.','.$proximamente_ID.','.$peliculas_ID.','.$pending_ID.','.$pendiente_ID, 'post_tag', 'Select All'); 

所以,我得到了一些漂亮的可選擇的下拉列表和所有分類信息。但是,如何將每個下拉列表中的選定數據傳遞給提交操作,因此請單擊提交按鈕並在我已完成的search.php中獲取正確的結果?

<form action="<?php echo home_url('/'); ?>" method="get" class=""> 
<input type="submit" value="Submit"> 
</form> 

編輯:我已經得到的數值爲每一個選擇具有$_GET並將其存儲在像$value_get變量($category_get$director_get,等...)

if(isset($_GET["category"])) 
{ 
    $category_get = $_GET["category"]; 
} 
if(isset($_GET["director"])) 
{ 
    $director_get = $_GET["director"]; 
} 
if(isset($_GET["actor"])) 
{ 
    $actor_get = $_GET["actor"]; 
} 
if(isset($_GET["escritor"])) 
{ 
    $escritor_get = $_GET["escritor"]; 
} 
if(isset($_GET["post_tag"])) 
{ 
    $idioma_get = $_GET["post_tag"]; 
} 

編輯:那麼,通過做最後一步我不知道下一個是query_posts($query_string),但無論如何它沒有幫助我。也許我在這裏感到困惑。即使當我發出$query_string的迴應時,查詢也不同,它甚至顯示其中的頁面名稱。所以,雖然這是最好的辦法,但我決定不在這裏繼續努力,因爲我在這個問題上浪費了很多時間。所以,我以簡單的方式去決定將isset($_GET["taxonomy"]獲得的變量值傳遞給$args並查詢它。這一切都導致這樣的:

$category_ID = get_category_id(''.$category_get); // Calling function 
$idioma_ID = get_tag_id(''.$idioma_get); // to get ID's by name 
$args = array(
'cat' => ''.$category_ID.'', 
'category_name' => ''.$category_get.'', 
'tag' => ''.$idioma_get.'', 
'tag_in' => ''.$idioma_ID.'', 
'director' => ''.$director_get.'', 
'escritor' => ''.$escritor_get.'', 
'actor' => ''.$actor_get.'', 
); 

,我既包括貓和CATEGORY_NAME是因爲這兩個詞術語,所以它就像一個修復的原因。 'Select All'選項值不能爲0,因爲它會強制所有下拉菜單不選擇所有選項,而是選擇不同的數據。在我的情況下,它的值不是0它只是:'' 因此,對於未來的參考,這是我的問題已經解決。我的解決方案不使用查詢字符串,但使用由$_GET獲得的值,我不能完全正確地考慮。在這個問題中唯一的答案幫助我通過這個問題,但它並沒有幫助我將變量傳遞給查詢,所以我認爲我不能在這裏選擇正確或完整的答案。如果其他人發佈如何將正確的數據傳遞給$query_string這將是正確的答案。

+0

每個下拉菜單都需要一個'輸入',其中'選項'選擇了''值'。 – OJFord

回答

0

如果我理解你的問題,你想知道如何讀取search.php文件中的選定值。

首先,您的表單操作應該是action="path_to_searchphp/search.php"

然後在search.php中,您可以通過訪問$_GET[$name]來檢索選定的值。該變量的值將是HTML表單中的value。從這裏你可以確定選擇了哪部電影等。

所以,想象一下你的HTML是

<form action="search.php" method="GET" class=""> 
    <select name="film"> 
    <option value="0">Film 1</option> 
    <option value="1">Film 2</option> 
    <option value="2">Film 3</option> 
    <option value="3">Film 4</option> 
    </select> 
    <input type="submit" value="Submit"> 
</form> 

而且用戶選擇Film 3。然後在您的search.php變量$_GET["film"]將被設置,其value將爲2

您可以驗證是否通過使用isset()函數選擇了任何選項。例如,

if(isset($_GET["film"])) 
{ 
    $value = $_GET["film"]; 

    // do $value validation 
    // do something with $value 
} 
相關問題