Php 我可以有一个执行两个操作的提交按钮吗?

Php 我可以有一个执行两个操作的提交按钮吗?,php,html,mysql,web,Php,Html,Mysql,Web,以下是表格代码: <?php include("updater.php"); if(isset($_POST['submit'])) { increment(); //increments value of question no.(I don't want to use auto_increment hence this) } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

以下是表格代码:

<?php
include("updater.php");
   if(isset($_POST['submit'])) {
increment(); //increments value of question no.(I don't want to use auto_increment   hence this)
   }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Add Questions</title>
</head>

<body>
<form action="get_question.php" method="post">
<?php $q_no=$counter;
       echo "Q.no.".$q_no  ?><br/>
Question:<input type="text" name="question" cols="40" rows="3" /> <br/><br/>
<input type="radio" name="answer" value="1" />&nbsp;<input type="text" name="c1"/><br/>
<input type="radio" name="answer" value="2"/>&nbsp;<input type="text" name="c2"/><br/>
<input type="radio" name="answer" value="3" />&nbsp;<input type="text" name="c3"/><br/>
<input type="radio" name="answer" value="4" />&nbsp;<input type="text" name="c4"/><br/>
<input type="submit" name="Submit" />
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
<input type="submit" name="submit" value="Next Question>>">
</form>
</form>


问题:






删除该嵌套表单。然后,您必须确保回答问题的过程触发下一个问题代码。有效地执行您似乎要求的操作,而实际上没有两个单独的操作。

您不能在一个表单提交中执行两个单独的HTTP请求,因此您的问题的答案是“否”,它不能执行两个操作


您可以使用JavaScript来发出分离HTTP请求(ajax),也可以让PHP后端执行您需要的两个操作。没有任何东西可以阻止它递增并重定向到下一个问题。

如果您从数据库获取数据

<?php
if(isset($_POST['submit'])) {
// get your current question no. : $next_no = SELECT q_no from table WHERE q_no=$current_question_no;
// fetch next question: SELECT * FROM table where q_no=($next_no+1);
//here will be some SQL query to increment..
}
?>

以跟踪q_no值的形式放置一个隐藏输入

<input type="hidden" name="qcount" value=$q_no /> (or similar, I don't use php much)
(或者类似的,我不怎么使用php)

也许你可以使用
div
而不是
,在div上有一个附加到onclick事件的函数,在该函数上你可以做任何你想做的事情。如果我只使用提交按钮,那么在每次重新加载页面(甚至F5)时,问题no会自动递增。因为你没有告诉它。我们必须查看表单处理器的逻辑,以建议如何实现这一点。对于其中一个,您正在增量之前运行获取代码。在输出到页面之前,应该先运行所有表单处理。我也看不到任何正在阅读post值的内容,所以你只是忽略了答案,转到下一个问题。我假设“here”是一个占位符,某一天可能会代表一个用户。该代码位于另一个php文件中,它不需要做任何事情,只需要获取数据并将其放入适当的数据库中,这里指向问题的值no
value=“
<?php
if(isset($_POST['submit'])) {
// get your current question no. : $next_no = SELECT q_no from table WHERE q_no=$current_question_no;
// fetch next question: SELECT * FROM table where q_no=($next_no+1);
//here will be some SQL query to increment..
}
?>
<input type="hidden" name="qcount" value=$q_no /> (or similar, I don't use php much)