2015-10-19 123 views
0

我創建了一個自定義模板,我需要創建一個搜索表單並在一個簡單列表中顯示結果。我想用這種方式來創建窗體:在wordpress中自定義搜索

<form role="form" action="../wp-content/api/search-json.php?key" method="post" id="searchform"> 
    <div class="form-group"> 

     <input id="search-protocol" type="text" class="form-control" name="typeahead"/> 
    </div> 
    <button type="submit" class="btn btn-default">Cerca</button> 
</form> 

和搜索json.php頁是這樣的:

<?php 


    $path = $_SERVER['DOCUMENT_ROOT']; 

    include_once $path . '/wp-config.php'; 
    include_once $path . '/wp-load.php'; 
    include_once $path . '/wp-includes/wp-db.php'; 
    include_once $path . '/wp-includes/pluggable.php'; 
    global $wpdb; 
    $key=$_GET['key']; 

     $wpdb->get_results("SELECT * FROM list WHERE code LIKE '%{$key}%'"); 

     $json = $wpdb->last_result; 
     echo json_encode($json); 

?> 

但我不能顯示的結果。我需要一個非常簡單的列表。

回答

0

如果您想處理$ _GET ['key'],您的表單必須使用GET方法。或者您可以將其更改爲$ key = $ _POST ['key']。

此外,我不查看您的表單輸入$ key變量。它應該像

<input id="search-protocol" type="text" class="form-control" name="key"/> 

所以最後我們有

<form role="form" action="../wp-content/api/search-json.php" method="post" id="searchform"> 
    <div class="form-group"> 

     <input id="search-protocol" type="text" class="form-control" name="key"/> 
    </div> 
    <button type="submit" class="btn btn-default">Cerca</button> 
</form> 

嘗試在你的PHP文件:

$prepare = $wpdb->prepare("SELECT * FROM list WHERE code LIKE %s", $key); 
$results = $wpdb->get_results($prepare); 
echo json_encode($results); 
+0

如果我改變$ key = $ _POST ['key']我得到一個內部服務器錯誤:(我怎麼能把結果放在輸入下的列表中? –

+0

好吧對不起,我忘了$後面的「;」$ key = $ _POST ['key'] ..但它重定向我的頁面與JSON和沒有篩選查詢..我需要顯示一個列表underst輸入篩選的值,我寫在輸入 –

+0

在這些JSON中的頁面是你查詢的結果嗎?你是否改變了輸入字段的名稱? – DrHolera

0

也許只是使用get_search_form,一個WordPress的功能。

@codex

您可以覆蓋功能,如果你想,只是在創建您的主題searchform.php。