每当我单击按钮时,页面都会刷新并丢失变量中的先前值。当我使用<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
//Database initialization
$StudName ="";
$Name="";
$Task="";
$connection=mysqli_connect("localhost","APB","12345678","apb");
$number=1;
if(isset( $_POST["button1"]))
{
$number = mt_rand(1,10);
$s="SELECT * FROM student_list WHERE NUM='$number'";
$r= mysqli_query($connection,$s);
$row = mysqli_fetch_array($r);
$StudName = $row["NAME"];
$Name="";
}
if(isset($_POST["Submit5"]))
{
$numb = mt_rand(1,4);
$s="SELECT * FROM computer WHERE rn='$numb'";
$r= mysqli_query($connection,$s);
$row=mysqli_fetch_array($r);
$Task = $row["task"];
$StudName ="";
$Name ="";
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<form id="form" action="" name="form1" method="POST" >
<h1>MPTC FRESHER'S DAY CELEBRATION - 2017</h1>
<h5>This time the lucky one is ...</h5>
<p>
<input type="hidden" name="process" value="1";>
<input onclick="<?php $number=$number+1;?>" name="button1" type="submit" id="button1" value="GENERATE" />
<br/>
<input id="t1" name="textfield" type="text" value="<?php echo $StudName; ?>" />
</p>
<p>
<h5>Be Ready !! </h5>
<input type="submit" value="TASK" name="Submit5" value="COMPUTER" />
<br/>
<input name="textfield3" type="text" value="<?php echo $Task; ?>" />
</p>
</form>
</body>
</html>
函数时,获取的行有时会重复。如何在每个按钮上单击下一行?
获取随机行不是必需的,至少我想按顺序获取下一行。
var initialiserTag;
initialiserTag = function(tag){
ReactDOM.render(<MyApp />, document.getElementById(tag));
}
export default initialiserTag;
答案 0 :(得分:0)
使用AJAX并在变量中附加响应并显示。
答案 1 :(得分:0)
首先onclick="<?php $number=$number+1;?>"
什么都不做。你不能使用js事件处理程序来执行php代码。
你可以做什么,而你实际上非常接近解决方案,是这样的:
<p>
<input type="hidden" name="process" value="<?php echo $number;?>";>
<input name="button1" type="submit" id="button1" value="GENERATE" />
<br/>
<input id="t1" name="textfield" type="text" value="<?php echo $StudName; ?>" />
</p>
并像这样更改php部分:
$number= $_POST['process'];
if(isset( $_POST["button1"]))
{
$number = $number + 1;
}
$s="SELECT * FROM student_list WHERE NUM='$number'";
$r= mysqli_query($connection,$s);
$row = mysqli_fetch_array($r);
$StudName = $row["NAME"];
$Name="";
答案 2 :(得分:0)
要获取数据库中的上一行或下一行(数字),您可以执行以下查询:
SELECT * FROM student_list WHERE num = (SELECT min(num) FROM student_list WHERE num > '$number') LIMIT 1;
对于之前的相同但使用小于(&lt;);
我想给你的另一个提示是不直接将变量注入查询。但是如果你必须这样做,至少如果你知道这个值是一个数字,你可以通过这样做把它转换为int $ number =(int)$ number; 您可以查看的其他功能是is_numeric和$ number&gt; 0等。
而是避免将这些变量直接放入查询中。查看准备好的语句,PDO开箱即用,比使用mysqli _ *。
更安全