Передача ключа массива в переменную - PullRequest
0 голосов
/ 18 января 2019

У меня есть скрипт, который помещает продукты в корзину;

if (isset($_POST["top"])) {
    $name = $_POST["name"];

    $_SESSION[$$name] += 1;

    $$name = $_SESSION[$$name];
    $name = $name.$$name;

    $piid = $_SESSION["piid"];
    $prod = $_POST["prod"];

    $_SESSION["cart"][$name] = array("id" => $prod, "name" => $_POST["name"], "quantity" => 1, "des" => $_POST["des"]);
    foreach ($piid as $value) {
        $ab = $value[id];
        $qty = $_POST["htop".$ab];

        if ($qty > 0) {
            $piid[] = array("id" => $row["ID"], "des" => $row["des"], "hid" => $row["hide"]);

            $_SESSION["cart"][$name]["top".$value[id]] = array("id" => $value[id], "dec" => $value[des], "qty" => $qty);
        }
    }
} else {
    $name = $_POST["name"];

    $name = $name.$$name;
    if (isset($_SESSION['cart'][$name]) && ($_SESSION['cart'][$name]['des'] === $_POST['des'])) {
        $_SESSION['cart'][$name]['quantity'] += 1;
    } elseif (isset($_SESSION['cart'][$name]) && ($_SESSION['cart'][$name]['des'] <> $_POST['des'])) {
        $_SESSION[$$name] += 1;

        $name = $_SESSION[$$name];
        $_SESSION["cart"][$name] = array("id" => $_POST["prod"], "name" => $_POST["name"], "quantity" => 1, "des" => $_POST["des"]);
    } else {
        $_SESSION["cart"][$name] = array("id" => $_POST["prod"], "name" => $_POST["name"], "quantity" => 1, "des" => $_POST["des"]);
    }
}

Чтобы избежать путаницы в массиве, когда элементы имеют различное описание, он установит многомерный массив, используя имя продукта и инкрементный идентификатор (где требуется)

Теперь мой вопрос: как мне заставить кнопку удаления работать что-то вроде этого? Мне нужно передать имя / ключ этого массива как переменную, чтобы мы могли затем передать это обратно в метод POST.

echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post" 
   enctype="application/x-www-form-urlencoded">
<button type="submit">Remove
<input type="hidden" name="rprid" value="' .$name. '" />
<button</form></div>

Спасибо!

1 Ответ

0 голосов
/ 18 января 2019

Мне удалось выяснить нужный мне код, который должен быть следующим:

foreach($cart as $key => $value)
    {
        echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post" enctype="application/x-www-form-urlencoded"><button type="submit">Remove<input type="hidden" name="rprid" value="' .$key. '" /></form></div>';
}

Спасибо за все мысли!

Редактировать: Решение заключается в использовании $key => $value таким образом, вы можете просто использовать $ key для возврата ключа, на который вы смотрите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...