1

我有一个包含表单的网页,如下所示:

<Form action=”search.php” method=”POST”&gt;
<fieldset>
<legend> Enter your search below </legend>
<textarea name=”query”&gt; </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;
    }
}

我想要发生的是:

将每个同义词变成一个可点击的链接。如果用户单击同义词“capsize”,则单词 capsize 将发送到query读取同义词(previously)并处理为结果的部分。即。回到本节:

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

任何关于这个的想法或建议都会很棒,谢谢大家。

4

1 回答 1

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['query'] 替换为 $_GET['query']

于 2013-07-19T16:44:44.663 回答