Jak tworzyć nową zmienna klikając w przycisk

0
   <form action="p2.php" method="post">
    <div>
    <input type="submit" value="Pobierz" name="od_nowa"/>
    </div>
    </form> 

<?php
    session_start();
    $_SESSION["a"]=0;

    if (isset($_POST['od_nowa'])) 
{
    $_SESSION["a"]++;
    echo $_SESSION["a"];
}
?>

Chcę aby po kliknięciu w przycisk Pobierz od nowa tworzona była zmienna $_SESSION["a"] , zwiększona jej wartość o jeden i wyświetlona. Czyli po kliknięciu przycisku Pobierz pojawia się 1, potem klikam znowu Pobierz i znowu pod tą jedynka pojawia się nowa 1 i tak za każdym razem po kliknięci przycisku pobierz. Jak coś takiego osiągnąć?

0

Nie zeruj tej zmiennej - przecież za każdym wywołaniem strony - ona zawsze przyjmie 0. Tak samo jak sprawdzasz $_POST['od_nowa'] - tak samo sprawdź zmienną z sesji. Jak jej nie ma to ustaw 0 (a jeszcze lepiej to 1) - a jak zmienna jest to zwiększaj.

0
axelbest napisał(a):

Nie zeruj tej zmiennej - przecież za każdym wywołaniem strony - ona zawsze przyjmie 0. Tak samo jak sprawdzasz $_POST['od_nowa'] - tak samo sprawdź zmienną z sesji. Jak jej nie ma to ustaw 0 (a jeszcze lepiej to 1) - a jak zmienna jest to zwiększaj.

Ale ja chce zeby za każdym wywołaniem strony ona przyjeła 0 potem zwiększyła o jeden i wyświetliła. I jak klikam pobierz to znowu utworzy, znowy zwiększy o jeden, jak klikne np 4x na przycisk pobierz to strona ma wyglądać tak:

Pobierz

1
1
1
1

Chce żeby cały czas dodawało jedynke po kliknięciu w przycisk. Wiem że to bez sensu ale chce coś takiego osiągnąć... Tylko jak?

0

To jeszcze spytam może inaczej - chcesz żeby co kliknięcie w przycisk była zwiększana jakaś tam Twoja zmienna o 1? (Tę zmienną trzymasz w sesji).
Chodzi Ci o takie coś?

<form action="p2.php" method="post">
    <div>
        <input type="submit" value="Pobierz" name="od_nowa"/>
    </div>
</form> 

<?php
session_start();

if (isset($_POST['od_nowa'])) {
    if (isset($_SESSION["a"])) {
        $_SESSION["a"] = 1;
    } else {
        $_SESSION["a"] ++;
    }
    echo $_SESSION["a"];
} else {
    $_SESSION["a"] = 0;
}
?>
0

Chce żeby co kliknięcie tworzona była zmienna sesyjna i przypisane do niej 0, ta zmienna zawsze ma mieć tą samą nazwę tylko tak jakby przechowywała zmienne od nowa

0
axelbest napisał(a):

To jeszcze spytam może inaczej - chcesz żeby co kliknięcie w przycisk była zwiększana jakaś tam Twoja zmienna o 1? (Tę zmienną trzymasz w sesji).
Chodzi Ci o takie coś?

<form action="p2.php" method="post">
    <div>
        <input type="submit" value="Pobierz" name="od_nowa"/>
    </div>
</form> 

<?php
session_start();

if (isset($_POST['od_nowa'])) {
    if (isset($_SESSION["a"])) {
        $_SESSION["a"] = 1;
    } else {
        $_SESSION["a"] ++;
    }
    echo $_SESSION["a"];
} else {
    $_SESSION["a"] = 0;
}
?>

Nie o to, przecież jak klikne w przycisk to tylko raz wyświetli 1

0

Dokładnie tak

0
<?php
session_start();

if (isset($_POST['od_nowa'])) {
    if (isset($_SESSION["a"])) {
        $_SESSION["a"] = "1<br>".$_SESSION["a"];
    }
    echo $_SESSION["a"];
} else {
    $_SESSION["a"] = '';
}
?>
0

Hehe @Clarc o tej porze nie kodzimy :D
To raczej tak powinno być

<?php
session_start();

$increment        = isset($_POST['od_nowa']);
$sessionVarExists = isset($_SESSION["a"]);

if (!$sessionVarExists) {
    $_SESSION["a"] = 0;
} else {
    if ($increment) {
        $_SESSION["a"] += 1;
    }
}

if ($sessionVarExists) {
    for ($i = 0; $i < $_SESSION["a"]; $i++) {
        echo "1\n";
        //jeśli ma być w htmlu to echo "1<br/>";
    }
}
0

Zmieniłem wyświetlanie w pętli for tylko....

<form action="p2.php" method="post">
    <div>
        <input type="submit" value="Pobierz" name="od_nowa"/>
    </div>
</form> 

<?php
session_start();

$increment        = isset($_POST['od_nowa']);
$sessionVarExists = isset($_SESSION["a"]);

if (!$sessionVarExists) {
    $_SESSION["a"] = 0;
} else {
    if ($increment) {
        $_SESSION["a"] += 1;
    }
}

if ($sessionVarExists) {
    for ($i = 0; $i < $_SESSION["a"]; $i++) {
        echo $_SESSION["a"]. " ";
        //jeśli ma być w htmlu to echo "1<br/>";
    }
}

Ogólnie idea dobra, klikam dodaje się kolejna liczba, ale...
klikne dwa razy powinienem miec:
1
1
klikne 4 razy powinienem miec:
1
1
1
1
W twoim kodzie natomiast jak klikne raz to mam:
1
klikne dwa razy to mam:
2
2
klikne 4 razy to mam
4
4
4
4
powinno z każdym kliknięciem utworzyć nową zmienna o wartości 0 i ją zwiększyć o jeden, w tym kodzie zwiększa o jeden ale każdą zmienną...

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0