这是表格的代码:
<?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" /> <input type="text" name="c1"/><br/>
<input type="radio" name="answer" value="2"/> <input type="text" name="c2"/><br/>
<input type="radio" name="answer" value="3" /> <input type="text" name="c3"/><br/>
<input type="radio" name="answer" value="4" /> <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>
的 Updater.php: 的
<?php
$connection=mysql_connect("localhost","root","");
if(!$connection){
die("could not connect to database".mysql_error());
}
$select_db=mysql_select_db("oes",$connection);
if(!$select_db){
die("could not select database".mysql_error());
}
$result=mysql_query("SELECT q_no FROM counter WHERE ptr='here'");
$row= mysql_fetch_array($result);
$counter= $row["q_no"];
function increment(){
global $counter;
$counter++;
$updated=mysql_query("UPDATE oes.counter SET q_no = '$counter' WHERE counter.ptr ='here';");
return $counter;
}
function delete($q_no){
$action_delete1=mysql_query("DELETE FROM oes.questions WHERE q_no='$q_no';");
$action_delete2=mysql_query("DELETE FROM oes.choices WHERE q_no='$q_no';");
$action_adddeleted=mysql_query("INSERT INTO oes.deleted (q_no) VALUES ('$q_no');");
}
function use_delete(){
$retrive=mysql_query("SELECT MAX (q_no) AS q_no FROM deleted");
$action_delete=mysql_query("DELETE FROM oes.deleted WHERE q_no='$retrive';");
return $retrive;
}
?>
问题是提交按钮只更新数据库中的问题,但是给同一个页面提供相同的q_no然后按下一个问题按钮我必须转到下一个(increment())有没有办法在同一个地方做两个任务按钮点击?
答案 0 :(得分:0)
<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" /> <input type="text" name="c1"/><br/>
<input type="radio" name="answer" value="2"/> <input type="text" name="c2"/><br/>
<input type="radio" name="answer" value="3" /> <input type="text" name="c3"/><br/>
<input type="radio" name="answer" value="4" /> <input type="text" name="c4"/><br/>
<input type="submit" name="submit" value="Next Question>>">
</form>
删除该嵌套表单。然后,您必须确保回答问题的处理触发下一个问题代码。有效地做你似乎要求的事情,而不是实际上有两个单独的行动。
答案 1 :(得分:0)
您无法使用单个表单提交执行两个单独的HTTP请求,因此您的问题的答案为否,它无法执行两个操作。
您可以使用JavaScript来发出单独的HTTP请求(ajax),或者您可以让您的PHP后端执行您需要的两个操作。没有什么可以阻止它将和重定向到下一个问题。
答案 2 :(得分:0)
如果您从数据库获取数据,那么
<?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..
}
?>
答案 3 :(得分:0)
将隐藏的输入放在跟踪q_no的值的表单中。
<input type="hidden" name="qcount" value=$q_no /> (or similar, I don't use php much)