【问题标题】:PHP submit button whenever user clicks每当用户单击时,PHP 提交按钮
【发布时间】:2012-05-08 03:00:38
【问题描述】:

我想在点击提交后收到多个请求。意思是我点击提交并得到结果后,我想再次查询结果并再次点击提交。我不想让自己回到虚无。

 <?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>";
 }
 }

目前,代码本身会查询出我想要的预期输出,但唯一的缺点是它作为输出保留在那里。我的目标是让提交和选择选项保留在那里,以便我可以继续输出我想要的结果,谢谢。

【问题讨论】:

  • 那么当提交表单时,您希望结果表和表单都显示?
  • 你为什么要关闭error_reporting?
  • @JMC 我搞定了。我想要的是在显示表格和结果之后,我有能力选择另一个时间。例如,我第一次查询病假。显示病假结果。所以我点击无薪休假列并点击提交,它将显示无薪休假结果。 @Jack,因为我会有“提交”的通知错误
  • @user,请确保在实时服务器上重新打开错误报告。

标签: php html form-submit


【解决方案1】:

最好的用户体验是使用 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>";
 }
 }

【讨论】:

    猜你喜欢
    • 2016-12-25
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 2015-04-13
    • 2014-07-29
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多