将数组元素转换为链接,其形式类似于表单中的“POST”方法。

时间:2013-07-19 16:35:34

标签: php forms dynamic multidimensional-array synonym

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

<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;
    }
}

我想要发生的是:

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

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

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

1 个答案:

答案 0 :(得分: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);
    }
} 

编辑显然,你应该用$ _GET ['query']替换$ _POST ['query']