0

[送信]をクリックした後、複数のリクエストを受け取りたいのですが。つまり、[送信]をクリックして結果を取得したら、もう一度結果を問い合わせて、もう一度[送信]をクリックします。私は自分自身を無に戻したくありません。

 <?php
 error_reporting(0);
 if (!$_POST['submit'])
 {
 <form action="http://localhost/test.php" method="post">
 Type of Leave: 
 <select name="leave">
 <option value=""selected="selected"></option>
 <option VALUE="Medical Leave"> Medical Leave</option>
 <option VALUE="Unpaid Leave"> Unpaid Leave</option> 
 </select>
 <input type="submit" name="submit" value="Check!" />
 </form>
 <?php
 }
 else
 {
 $conn=odbc_connect("employee","","") or die (odbc_errormsg());
 if (!$conn)  
 {
 exit
 ("Connection Failed: " . $conn);
 }
 else
 {
 $choice = $_POST['leave'];
 $sql="SELECT * FROM balance WHERE ID=$username";
 $rs=odbc_exec($conn,$sql);
 ?>
 <?php
 while (odbc_fetch_row($rs))
 {
 $choice=odbc_result($rs,"$choice");
 echo "<tr><td>$choice</td>";
 }
 odbc_close($conn);
 echo "</table>";
 }
 }

現在、コード自体が必要な期待される出力を照会しますが、唯一の欠点は、出力としてそこにとどまるということです。私の目的は、送信と選択オプションをそのままにして、希望する結果を出力し続けることができるようにすることです。ありがとうございます。

4

1 に答える 1

0

最適なユーザー エクスペリエンスは、AJAX を使用して、ドロップダウンでの選択内容に応じて結果テーブルを動的に変更することです。より簡単な解決策として、フォームを上に移動して if/else ループの外に出すことができます。最初にフォームを置き、フォームが印刷されたら、 を確認しif ($_POST['submit'])ます。

selected="selected"この例では、この送信で選択されたオプションに追加する小さな関数も追加しました。それは非常に大雑把ですが、あなたはその考えを理解します。

<?php
function matchPost($name,$val) {
if($val == $name)
    echo 'selected="selected"';
}
?>

<form action="http://localhost/test.php" method="post">
 Type of Leave: 
 <select name="leave">
 <option value=""></option>
 <option <?php matchPost('Medical_Leave',$_POST['leave']); ?> VALUE="Medical_Leave"> Medical Leave</option>
 <option <?php matchPost('Unpaid_Leave',$_POST['leave']); ?> VALUE="Unpaid_Leave"> Unpaid Leave</option> 
 </select>
 <input type="submit" name="submit" value="Check!" />
 </form>

<?php
 if ($_POST['submit'])

 {
 $conn=odbc_connect("employee","","") or die (odbc_errormsg());
 if (!$conn)  
 {
 exit
 ("Connection Failed: " . $conn);
 }
 else
 {
 $choice = $_POST['leave'];
 $sql="SELECT * FROM balance WHERE ID=$username";
 $rs=odbc_exec($conn,$sql);
 ?>
 <?php
 while (odbc_fetch_row($rs))
 {
 $choice=odbc_result($rs,"$choice");
 echo "<tr><td>$choice</td>";
 }
 odbc_close($conn);
 echo "</table>";
 }
 }
于 2012-05-08T03:14:59.113 に答える