0

我正在尝试做一些简单的事情来学习如何进行查询,然后将答案放入框中。我有一个看起来像这样的 HTML 文件:

<html>
<head>
<title>Test</title>
</head>
<body>
<form action="results.php" method="post">Search: <input name="term" type="text" /><br />    
<input name="submit" value="Submit" type="submit" />
<p>Answer: <input name="answer" type="text" /></p>
</form>
</body>
</html>

php代码是:

<?php
$hostname = 'host.com';
$username = 'ratetable';
$password = 'mypassword';
$term = (int) $_GET['term'];

try 
{
   $db = new PDO("mysql:host=$hostname;dbname=ratetable", $username, $password);
   //echo 'Connected to database<br />';

   foreach($db->query('SELECT * FROM rates WHERE mileage<= ' . $term . ' ORDER BY mileage DESC LIMIT 1') as $row) {
       echo "<input type='text' name='answer' value='" . $row['ratepermile'] . "'>";
   }
}         
catch (PDOException $e) {
       echo $e->getMessage();
       throw($e);
   }
?>

所以我试图将ratepermile(数据库中的一个字段)放入“答案”文本框中。我得到的是屏幕清除,但没有表单也没有结果,即使在我注释掉“连接到数据库”回显行并使用我知道数据库中存在的东西之后。

如何将表单保留在屏幕上并回显到文本框?

感谢您的关注。

4

3 回答 3

3

您的表单正在POST输入数据 ( method="post"),但您的 PHP 脚本正在查找$_GET数据。

您需要从中获取数据$_POST

$term = (int) $_POST['term'];
于 2013-01-16T17:33:11.647 回答
0

您可以使用 $_REQUEST 来避免这些混淆。无论你使用method="post" 还是method="get",都可以通过这个获取值。

于 2013-01-18T06:13:13.693 回答
0

以及上面的 POST 问题。如果您希望将表单保留在页面上并且不重新加载您需要查看AJAX的页面。

于 2013-01-16T17:36:56.317 回答