我想从php块外面增加一个值

时间:2010-07-30 17:56:21

标签: php

基本上是一个网页,有人按下按钮来增加$选择变量。全局和静力学似乎不起作用。 代码如下所示:

<?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>

4 个答案:

答案 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?

,而不是使用Global

答案 3 :(得分:0)

把:

global $selection

在你的函数中,所以:

global $selection;
$selection++;