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を「answer」テキストボックスに入れようとしています。「データベースに接続されています」エコー行をコメントアウトし、データベースに存在することがわかっているものを使用した後でも、画面はクリアされますが、フォームも結果も表示されません。

フォームを画面に表示したままテキストボックスにエコーするにはどうすればよいですか?

見てくれてありがとう。

4

3 に答える 3

3

あなたのフォームはPOSTデータ(method="post")を使用していますが、PHPスクリプトは$_GET見苦しいです。

代わりに、からデータを取得する必要があります$_POST

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

上記のPOSTの問題と同様に。フォームをページに残し、ページをリロードしない場合は、AJAXを調べる必要があります。

于 2013-01-16T17:36:56.317 に答える
0

これらの混乱を避けるために、$_REQUESTを使用できます。method="post"またはmethod="get"のどちらを使用する場合でも、これを介して値をフェッチできます。

于 2013-01-18T06:13:13.693 に答える