0

XPath を使用した検索機能があります。結果が表示されると、チェック ボックスも表示されます。

<form name="save" method="POST" action="saveProcess.php">
            <?php
            foreach ($holidays as $holiday) 
            {
                $resultTable .=  "<p><a href=\"{$holiday->link}\">{$holiday->title}</a>" . "<br/>" . 
                "{$holiday->pubDate}" . "<br>" . 
                "{$holiday->description}" . "<input type='checkbox' name='chk' value='{$holiday->title}' />" . "<br /></p>";            
            }
            ?>
            <input type="submit" value="submit"/>
        </form>

{$holiday->title}このチェックボックスに、フォームが送信されたときにsaveProcess.phpに表示される値を保持したいと思います.issetメソッドを使用して、変数が設定されているかどうかを確認します.

if (isset($_POST['chk'])) {
    echo $_POST['chk'];
}
else
{
    echo"variable is not set";
}

どこが間違っているのですか?

4

2 に答える 2

2

問題は、各チェックボックスに「chk」という名前を付けて、フォームを送信すると値が上書きされることです。そのため、saveProcess.php には何も取得されません。必要なことは、次のように $_POST["chk"] に値の配列を含めることができるように指定することです。

<input type='checkbox' name='chk[]' value='{$holiday->title}' />

名前の角括弧に注意してください。$_POST["chk"] は配列になります。

もう 1 つの方法は、html をそのままにして、saveProcess.php で次のようにデータを取得することです。

$HTTP_POST_VARS["chk"]

最初の部分では、基本的に、それが機能しない理由とその修正方法について説明します。2 番目の提案は、データを取得する別の方法にすぎません。

すてきな一日を!

于 2012-04-06T09:56:50.517 に答える