基本上,这是一个网页,在这里有人会按下一个按钮来递增$selection变量。全局变量和静态变量似乎不起作用。代码如下所示:
<?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>发布于 2010-07-31 01:59:35
一旦PHP运行并将输出发送到客户端,代码将不会运行,除非再次从服务器请求页面。您可以创建一个session variable并使用它来存储跨页面请求的变量。您需要再次访问该页面或执行AJAX请求以再次调用PHP代码。
发布于 2010-07-31 01:59:20
只需使用另一个表单元素即可。
<input type=hidden name=selection value=1>在显示图像标记之前,像$_POST['selection']上的is_numeric一样执行一次健全性检查。如果设置了$_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\">";发布于 2010-07-31 02:01:57
为什么不使用$_SESSION变量而不使用全局变量呢?
https://stackoverflow.com/questions/3374162
复制相似问题