現在我知道該怎么做了,但我一直收到一個錯誤,說索引未定義。關于我正在嘗試做的一些事情:我有一個購物車,我想更新購物車中商品的數量。目前,我的數量在單擊添加專案按鈕時更新。但是,一旦我嘗試通過表單手動更新數量,我就會收到一條錯誤訊息,指出我嘗試傳遞的索引未定義。因為我對 php 還很陌生,所以我真的不知道如何或為什么沒有使用我設定的值傳遞它。
現在的代碼:
這是我的購物車(無法正常作業的部分):
<?php
if (isset($_SESSION["cart"])) {
$total = 0;
foreach(BazaKnjig::seznamVsehKnjig() as $knjiga):
if (isset($_SESSION["cart"][$knjiga->id])) {
$number = $_SESSION["cart"][$knjiga->id];
?>
<form action="<?= $url ?>" method="post">
<input type="hidden" name="do" value="update_cart" />
<input type="hidden" name="id" value="<?= $knjiga->id ?>" />
<p>
<input type="number" name="numBooks" value="<?= $number ?>" size="1"> <?= $knjiga->avtor ?>: <?= substr($knjiga->naslov, 0, 20) ?> ...
<button type="submit">Posodobi</button>
</p>
</form>
<?php
$total = $total ($knjiga->cena) * $number;
}
endforeach;
?>
<p> Skupaj: <b> <?= number_format($total, 2) ?> EUR </b></p>
我有一個表格來展示購物車中的所有物品。當用 POST 傳遞變數時,我得到一個錯誤Notice: Undefined index: numBooks。我做了一些谷歌搜索,發現當變數的值為空時,這是很常見的。我不確定這是否與我使用變數設定數量的事實有關,$number或者我是否遺漏了一些關鍵的東西。
這是我用于檢查方法和過濾的代碼。
if ($method == "POST") {
$validationRules = [
'do' => [
'filter' => FILTER_VALIDATE_REGEXP,
'options' => [
"regexp" => "/^(add_into_cart|purge_cart|update_cart)$/"
]
],
'id' => [
'filter' => FILTER_VALIDATE_INT,
'options' => ['min_range' => 0]
]
];
$post = filter_input_array(INPUT_POST, $validationRules);
然后遵循其他功能的 switch 陳述句,所以我將跳過這些,因為它們沒有問題,最后是更新 switch case:
switch($post["do"]):
case "update_cart":
$id = $post["id"];
$knjiga = BazaKnjig::vrniKnjigo($id);
$quan = $post["numBooks"];
if($quan > 0) {
$_SESSION["cart"][$id] = $quan;
} else {
unset($_SESSION["cart"][$id]);
}
break;
錯誤出現在$quan = $post["numBooks"];。任何幫助表示贊賞。
uj5u.com熱心網友回復:
根據 Mihai 的建議,我為“numBooks”添加了一個額外的過濾器,從而解決了問題。
uj5u.com熱心網友回復:
沒有
$quan = $post["numBooks"]
在您的代碼中,添加它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/339897.html
下一篇:如何繪制一維K均值聚類
