phpです。DBから条件にあう人を探して、更にチェックボックス付きの一覧にして、選択した人だけを別ページ(sample04.php)に表示させたいのですが、なぜか「送信」ボタンを押しても動きません。どこを訂正すればよいのでしょうか?


<?
省略
?>
<form name="form50" method="post" action="./sample04.php">
<?
// マイフレンドを表示
$sql = "SELECT a.FRIENDS_ID FROM T_RELATION a, T_USERS b WHERE a.FRIENDS_ID = b.SYS_ID AND SELF_ID = ".$_SESSION['userLoginID']. " ORDER BY HN";

$result = mysql_query($sql) or die (include "../inc/error.php");

while($line = mysql_fetch_array($result, MYSQL_NUM)){

// 友達オブジェクトを生成
$friendObj = new User();
$friendObj->getUser($line[0]);
?>

<?=$friendObj->hundleName?>さん<input type="checkbox" name="chk[]" value="<?=$friendObj->hundleName?>"><br>

<?
}
?>
<input type="submit" name="Submit" value="送信">
</form>
省略
</body>
</html>

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2010/10/11 15:45:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

ポイント35pt

>なぜか「送信」ボタンを押しても動きません

 

「ボタンは押せる=文字化けなどではない」としますとブラウザのキャッシュが効いてしまっているのではないかと思います

 

確認手段としては、現実には存在しないファイル名を指定して実行してみるなどがあります

(ページ遷移を行おうとすればNotFoundエラーになるはずです)

<form name="form50" method="post" action="./sample9999.php">

 

仮に上記が正解の場合の対処例は下記のようなコードをファイルの一番最初に書くことです

(<html>などよりも先に書く必要があります)

<?
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
id:ozaki

<form name="form50" method="post" action="./sample9999.php">として、「送信」ボタンを押しても、ページに変化はありません(NotFoundエラーは表示されません)。

ご指摘いただいた原因ではなく、他に原因があるようです・・・。

2010/10/11 13:41:39

その他の回答1件)

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149ここでベストアンサー

ポイント35pt

>なぜか「送信」ボタンを押しても動きません

 

「ボタンは押せる=文字化けなどではない」としますとブラウザのキャッシュが効いてしまっているのではないかと思います

 

確認手段としては、現実には存在しないファイル名を指定して実行してみるなどがあります

(ページ遷移を行おうとすればNotFoundエラーになるはずです)

<form name="form50" method="post" action="./sample9999.php">

 

仮に上記が正解の場合の対処例は下記のようなコードをファイルの一番最初に書くことです

(<html>などよりも先に書く必要があります)

<?
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
id:ozaki

<form name="form50" method="post" action="./sample9999.php">として、「送信」ボタンを押しても、ページに変化はありません(NotFoundエラーは表示されません)。

ご指摘いただいた原因ではなく、他に原因があるようです・・・。

2010/10/11 13:41:39
id:deflation No.2

回答回数1036ベストアンサー獲得回数126

ポイント35pt

ローカル環境では正常に動作(sample4.phpにページ遷移)しますか?


もしローカル環境では正常に動作するが、インターネット環境では動作しないということでしたら、サーバ側で貴方のクライアントIPからのPOSTメソッドを禁止している可能性があります。(Apacheでは <Limit POST> で制限をかけられる)

その場合は、サーバ管理者にお問い合わせください。

id:ozaki

実際のシステムでは、頻繁にPOSTメソッドを使っていますので、ご指摘の原因ではないと思います。

2010/10/11 14:07:22
  • id:windofjuly
    うぃんど 2010/10/11 14:16:34
    チェックボックスが表示されているということですしphpのソースコードには間違えらしいものは見当たりません(省略形ですが、こちらでも確認してます)ので、送信ボタンを押す前にHTMLのソースコードを表示させて確認してみてください
    (チェックボックスや送信ボタンは存在していても <form name="form50" method="post" action="./sample04.php">が存在しない。<form>と</form>の組み合わせがおかしいなどの疑い)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません