<form name="search" method="post" action="<?php $_SERVER['PHP_SELF'];?>">
Seach for: <input type="text" name="find" /> in
<Select NAME="field">
<Option VALUE="english">english</option>
<Option VALUE="spanish">spanish</option>
</Select>
<input type="hidden" name="searching" value="yes" />
<input type="submit" name="search" value="Search" />
</form>
<?php
$options = array('english'=> array('1' => 'one', '2' => 'two'), 'spanish' =>array('1'=>'uno', '2'=>'dos'));
if (($_POST['find'] == '1')&& ($_POST['field'] == 'english')){
echo $options['english']['1'];
}
?>
我想要这个功能,当用户输入'1'和seclet'english'时,它会显示一个,当用户输入'1'选择'spanish'时,它会显示uno,依此类推。
问题:
if (($_POST['find'] == '1')&& ($_POST['field'] == 'english')){ echo $options['english']['1']; }
想象一下如果我有1到100的数字,我就不可能重复这些代码(== 1&amp;&amp; == english,== 2&amp;&amp; == english ...)。 / p>
2如果您运行此脚本,则会显示
注意:未定义的索引:find ...
这个探针是什么以及如何修复它?
答案 0 :(得分:0)
即使在初始页面加载时,您也会检查发布的值。尝试包装底部的PHP代码,如下所示:
<?php
if(!empty($_POST)) {
$options = array('english'=> array('1' => 'one', '2' => 'two'), 'spanish' =>array('1'=>'uno', '2'=>'dos'));
if (($_POST['find'] == '1')&& ($_POST['field'] == 'english')){
echo $options['english']['1'];
}
}
?>
答案 1 :(得分:0)
<?php
$html =<<<'HTML'
<form name="search" method="post" action="<?php $_SERVER['PHP_SELF'];?>">
Seach for: <input type="text" name="find" /> in
<Select NAME="field">
<Option VALUE="english">english</option>
<Option VALUE="spanish">spanish</option>
</Select>
<input type="hidden" name="searching" value="yes" />
<input type="submit" name="search" value="Search" />
</form>
HTML;
echo $html;
$options = array('english'=> array('1' => 'one', '2' => 'two'), 'spanish' =>array('1'=>'uno', '2'=>'dos'));
if ((isset($_POST['find']) == '1')&& (isset($_POST['field']) == 'english')){
echo $options['english']['1'];
}
?>
答案 2 :(得分:0)
第一点:
<form name="search" method="post" action="<?php $_SERVER['PHP_SELF'];?>">
<?php $_SERVER['PHP_SELF'];?>
什么都不做。你必须在这里使用 echo 。然而,错误没有显示,因为当没有设置action属性时,表单在$ _SERVER ['PHP_SELF']调用脚本是默认行为。
另外:
<input type="hidden" name="searching" value="yes" />
似乎毫无用处。
第二点:
当然,您不希望以静态方式解析每个可能的选择。您将使用抽象和动态行为。
按语言有一个数组索引,每个子数组给出每个数字使用的单词。因此,您有自己的规则,计算结果如下:
<?php
$input = trim($_POST['find']);
$language = $_POST['field'];
$output = $options[$language][$input];
echo $output;
?>
这是最小的代码。请不要“按原样”使用它。您至少要检查密钥是否存在并提供足够的错误消息。