我有一个包含表单的网页,如下所示:
<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
}
关于这个的任何想法或建议都会很棒,谢谢你们。
答案 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']