как сделать $ id + 1 с каждой отправкой формы?

Я хочу добавить динамические переменные сеанса. Итак, я начинаю с id = 0, но после отправки формы идентификатор должен быть установлен в 1, а затем в 2 и т. Д. Вот то, что я пытался. Я пытался сделать $ id ++ в функции отправки, но это не работает.

        <?php
$id = 0;
if (isset($_POST['submit'])) {

$_SESSION['person'][$id] = array(
'id' =>  $id,
'voornaam' => $_POST['firstname'],
'achternaam' => $_POST['lastname'],
'leeftijd' => $_POST['age'],
'rol' => $_POST['role'],
'omschrijving' => $_POST['description'],
);
$id++;
header('Location: mysite');
}
?>

0

Решение

$id = count($_SESSION['person']);

(Предполагая, что вы определили $_SESSION['person'] как массив в другом месте.)

Полный фрагмент выглядит так:

if (!is_array($_SESSION['person']))
{
$_SESSION['person'] = array();
}

if (isset($_POST['submit']))
{
$id                      = count($_SESSION['person']);
$_SESSION['person'][$id] = array(
'id'           => $id,
'voornaam'     => $_POST['firstname'],
'achternaam'   => $_POST['lastname'],
'leeftijd'     => $_POST['age'],
'rol'          => $_POST['role'],
'omschrijving' => $_POST['description'],
);
header('Location: mysite');
}
1

Другие решения

Вы на самом деле нигде не сохраняете значение. Так что каждый раз будет сбрасываться в 0.

Вы создаете значение каждый раз:

$id = 0;

И вы увеличиваете это:

$id++;

Но вы нигде не держите это. Если значение должно следовать за сеансом пользователя, сохраните его в сеансе. Что-то вроде:

// get the id from session, or create a new one
$id = 0;
if (isset($_SESSION['id'])) {
$id = $_SESSION['id'];
}

// use the id value in your code

// increment the id and store it back in the session
$_SESSION['id'] = $id + 1;
0

Я не понял вас ясно, но это может помочь

<?php
$id = 0;
if (isset($_POST['submit'])) {
$currID = $_SESSION['person']['id'];
$_SESSION['person'] = array(
'id' =>  $currID++,
'voornaam' => $_POST['firstname'],
'achternaam' => $_POST['lastname'],
'leeftijd' => $_POST['age'],
'rol' => $_POST['role'],
'omschrijving' => $_POST['description'],
);
header('Location: mysite');
}
?>
0
По вопросам рекламы [email protected]