2013-07-19 22 views
1

我有一個包含一個形式的網頁,如下所示:將一個數組元素轉換爲一個鏈接,它在表單中就像一個「POST」方法。

<Form action=」search.php」 method=」POST」> 
<fieldset> 
<legend> Enter your search below </legend> 
<textarea name=」query」> </textarea> 
</fieldset> 
</form> 

的用戶文本從query讀取和使用在下面的部分代碼顯示的搜索結果:

if ($_POST['query']) 
{ 
//Users query is read and results from a search API are displayed 
} 

下發生的事情是生成一個同義詞列表,並將其存儲在一個名爲$synonyms的多維數組中,該列表使用下面顯示的代碼在左側導航欄中顯示。 $newline打印新行(作爲變量顧名思義)一個$synonyms陣列的

實施例:用於輸出陣列

array(3) 
{ [0]=> array(2) 
    { [0]=> string(9) "chelonian" 
     [1]=> string(17) "chelonian reptile" } 

[1]=> array(6) 
{ [0]=> string(7) "capsize" 
    [1]=> string(11) "turn turtle" 
    [2]=> string(8) "overturn" 
    [3]=> string(9) "turn over" 
    [4]=> string(8) "tip over" 
    [5]=> string(9) "tump over" } 

[2]=> array(4) 
{ [0]=> string(4) "hunt" 
    [1]=> string(3) "run" 
    [2]=> string(9) "hunt down" 
    [3]=> string(10) "track down" } 

} 

代碼:

foreach ($synonyms as $test) 
{ foreach ($test as $test2) 
    { 
    echo $test2.$newline.$newline; 
    } 
} 

我希望發生的是:

將每個同義詞轉換爲可單擊的鏈接..如果用戶單擊同義詞「翻轉」,則翻譯字將發送到同義詞的部分m(以前的query)被讀取並處理成結果。回到本部分:

if ($_POST['query']) 
{ 
// Synonym is read and results from a search API are displayed 
// Previously 'query' was read here 
// The cycle continues again 
} 

對這一個任何想法或建議將是偉大的,謝謝你們。

+4

可點擊的鏈接都會盡力做一個GET請求。如果你需要做一個POSt,那麼你必須使用'

',或者使用JavaScript來攔截點擊並動態構建一個POST。 –

回答

2

您應該在搜索表單中使用GET。如下圖所示

foreach ($synonyms as $test) 
{ foreach ($test as $test2) 
    { 
    // I used <br/> for newline 
    printf('<a href="search.php?query=%1$s">%1$s</a><br/>', $test2); 
    } 
} 

編輯然後列出同義詞:很顯然,你應該替換$ _ POST [「查詢」]與$ _GET [「查詢」]

+0

嘿oozel。謝謝。它確實將術語變成鏈接。當我點擊它,它會去mywebsite.com/search.php?query=capsize ..但是,這只是在我的網頁上顯示的形式。我可能需要做更多的推文。謝謝,我將盡快嘗試實施您的解決方案!..'%1 $ s'在您的代碼中表示什麼? – Tom

+1

它是字符串值的佔位符。換句話說,它表示一個字符串值將會出現在這裏(並且你的字符串值是$ test2)。你應該看看** sprintf **手冊http://www.php.net/manual/en/function.sprintf.php –

相關問題