基本上是一个网页,有人按下按钮来增加$选择变量。全局和静力学似乎不起作用。 代码如下所示:
<?php
if(isset($_POST['next']))
{
displaynext();
}
else
{
global $image_folder = "/images/";
echo "global declared";
global $selection;
$selection = 1;
}
function displaynext()
{
$selection++;
if (file_exists($image_folder."/".$selection.".png")) {
echo "<img src=\"$image_folder/".$selection.".png\">";
}
else {
echo "No next image was found for $selection in ".$image_folder."/".$selection.".png";
}
?>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
<input type="submit" name="next" value="Next">
</form>
答案 0 :(得分:3)
PHP运行并将输出发送到客户端后,除非再次从服务器请求页面,否则代码将不会运行。您可以创建session variable并使用它来跨页面请求存储变量。您需要再次访问该页面或执行AJAX请求以再次调用您的PHP代码。
答案 1 :(得分:0)
只需使用其他表单元素。
<input type=hidden name=selection value=1>
在显示图片标记之前,在is_numeric
上执行$_POST['selection']
之类的完整性检查。如果设置了$_POST['selection']
,请为上面的输入标记增加它。
完整示例:
<?php
$selection = 0;
$image_folder = "images/";
if (isset($_POST['selection'])) {
$userSelection = $_POST['selection'];
if (is_numeric($userSelection) && file_exists($image_folder . $userSelection)) $selection = $userSelection;
}
echo "<img src=\"images/" . $selection . ".png\">";
echo "<form action=\"" . $_SERVER['PHP_SELF'] . "\" method=post>";
echo "<input type=hidden name=selection value=\"" . ($selection + 1) . "\">";
echo "<input type=submit name=subnext value=\"Next\">";
答案 2 :(得分:0)
为什么不使用$_SESSION
var?
答案 3 :(得分:0)
把:
global $selection
在你的函数中,所以:
global $selection;
$selection++;