0 レビュー
2 回答
php-セッションからアイテムを削除します(削除ボタンを表示します)
ページにボタンがあります。これは単純な入力送信ボタンで、ページIDを別のページのフォームに送信してPHPセッションに保存します。
そのアイテムがすでにセッションにある場合、代わりに削除ボタンを表示するにはどうすればよいのでしょうか?
これはフォームが送信されるコードです
<?php
session_start();
if(!in_array($_POST['event_id'], $_SESSION['event_orders'])) {
$_SESSION['event_orders'][] = $_POST['event_id'];
}
?>
ボタンのあるページには実際にはセッションコードがありませんが、同様のIFの種類のステートメントになると思いますが、使用する必要のある正確な構文がわかりません。そして、どのようにしてIDをセッションから奪うのでしょうか?
編集:
このようなものは機能しますか?フォームボタンを配置します。
<? if(isset($_SESSION['event_orders']))
{
echo "<a href='".$_SERVER['PHP_SELF']."?delete'>delete</a>";
}
else if(!in_array($_POST['event_id'], $_SESSION['event_orders'])) {
// echo the submit button;
} ?>
わからない
0
レビュー
答え :
解決策:
<?php
session_start();
//if request parameter delete is present then unset the array
if(isset($_REQUEST['delete']))
{
unset($_SESSION['event_orders']);
}
else if(isset($_SESSION['event_orders']))
{
//displays delete link which redirects to same page with an additional request parameter as url?delete
echo "<a href='".$_SERVER['PHP_SELF']."?delete'>delete</a>";
}
else if(!in_array($_POST['event_id'], $_SESSION['event_orders'])) {
$_SESSION['event_orders'][] = $_POST['event_id'];
}
?>
編集: 配列を完全に設定解除するのではなく、特定の配列項目を削除するだけで済みます。
<?php
session_start();
//if request parameter delete is present then unset the array
if(isset($_REQUEST['delete']))
{
unset($_SESSION['event_orders'][$_REQUEST['delete']]);
var_dump($_SESSION['event_orders']);
}
else if(in_array($_POST['event_id'], $_SESSION['event_orders']))
{
//displays delete link which redirects to same page with an additional request parameter as url?delete
$key = array_search($_POST['event_id'], $_SESSION['event_orders']);
var_dump($_SESSION['event_orders']);
echo "<a href='".$_SERVER['PHP_SELF']."?delete=".$key."'>delete</a>";
}
else
{
$_SESSION['event_orders'][] = $_POST['event_id'];
var_dump($_SESSION['event_orders']);
}
?>
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。