0

私はphpが初めてで、動的に成長する配列から生成されるリスト内のアイテムを削除するための削除ボタンのようなものをどのように作成できるか疑問に思っていました.

私が意味することの例はこれです:

<?php
if (isset($_REQUEST['foo']))
{
    if (isset($_SESSION['words']))
    {
        $_SESSION['words'][] = 'added word';
    }
    else
    {
        $_SESSION['words'] = array('cat', 'dog', 'you', 'me');
    }

    foreach ($_SESSION['words'] as $key => &$value)
    {
        echo "<p>" . 
             $value . 
             " - <input type='submit' name='delete_" . 
             $value . 
             "' value='Delete Entry' /></p>";
    }

    if (isset($_REQUEST['clear']))
    {
        session_destroy();
    }
?>

ここで、スクリプトに送信されるボタンをクリックするたびに、ボタンを含む配列をエコーアウトします。

削除ボタンを次のような関数にリンクしたいと思います。

function delete_entry( $index )
{
    unset($_SESSION['words'][$index]);
    $_SESSION['words'] = array_values($_SESSION['words']);
}

私が求めていることは可能ですか?

4

1 に答える 1

1

単語の配列はセッション変数に保存されているように見えるので、単語を削除/追加したいと考えています。これはどう...?

  1. 単語が何であるかを示す非表示フィールドを使用して、単語ごとに個別のフォームを作成します。

    したがって、for ループでは次のようになります。 echo "<form><p>".$value." - <input type='submit' value='Delete Entry' /></p><input type=\"hidden\" name=\"delword\" value=\"".$value."\"/></form>";

  2. if(isset[$_REQUEST['delword']])セッション配列から削除します(ループのエコーを行う前にこれを行います。( array_searchを使用して要素を見つけ、提案したように unset を実行できます)

この提案について詳しく説明してほしい場合はお知らせください。

于 2012-11-05T23:51:54.020 に答える