人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPについて質問です。

現在PHPで管理システムを作成しています。がしかしバグが中々解決できず困っております。

http://oskuni7.sakura.ne.jp/B_auction_system/rakusatugo_jouhou.phps

現在以下のバグが起こっています。

完了と未完了のチェックボックスにチェックを入れてボタンを押して設定を与えているのですが、1番上の商品は設定を変更することが出来るのですが、二つ目以降の商品は設定を変更することが出来ません。

また一番初めの商品はTEXTの中に文字を入れてボタンを押して値を変更できないのに対して2番目以降はTEXTの中に文字を入れてボタンを押すと値を変更することが出来ます。

今までこのようなバグは起こったことがなく、なぜこのようなバグが起こるのかわからないのですが、どのような問題が考えられるのでしょうか?

分析できるかたおりましたら教えていただけないでしょうか。

お手数をおかけしますがお待ちしております。

●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:PHP システム チェックボックス バグ ボタン
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● pahoo
●35ポイント

1番上の商品は設定を変更することが出来るのですが、二つ目以降の商品は設定を変更することが出来ません。

全体の流れが見えないので、とりあえず、分かることだけ記します。


"http://oskuni7.sakura.ne.jp/B_auction_system/checkbox_data.phps" の foreach で回している $_POST["checkbox"] の $val と $_POST["checkbox2"] の $val は同じ値が入っていると思います。このため、冒頭の現象が起きます。

しかも、要素は1つしかありませんから foreach で回す意味が分かりません。


もしかすると、"http://oskuni7.sakura.ne.jp/B_auction_system/rakusatugo_jouhou.p..." のチェックボックス・オブジェクトにおいて、checkbox[] の要素名を記述するのを忘れているのではないでしょうか。


参考サイト

◎質問者からの返答

ご回答ありがとうございます。


2 ● TomoTana
●35ポイント ベストアンサー

1ページに複数明細を表示していますが、<form>タグは各行で完結してしまっています。

もし、複数行にチェックを入れて、上のボタンで一括送信したいと思っているのであれば

<form>は一組だけの記述にする必要があります。

簡略化した例を示します。

まずい例(現在)

<input type="submit" name="submit" value="完了・未完了設定">
<table>
<tr>
<FORM method="POST" action="http://oskuni7.sakura.ne.jp/B_auction_system/add_data.php">
<td><input type="checkbox" name="checkbox[]" value="1" ></td>
<td><input type="checkbox" name="checkbox2[]" value="1" ></td>
<td><input type="submit" name="data_add" value="データを登録する"></form></td>
</tr>
<tr>
<FORM method="POST" action="http://oskuni7.sakura.ne.jp/B_auction_system/add_data.php">
<td><input type="checkbox" name="checkbox[]" value="2" ></td>
<td><input type="checkbox" name="checkbox2[]" value="2" ></td>
<td><input type="submit" name="data_add" value="データを登録する"></form></td>
</tr>
</table>

意図通りに?動く例

<FORM method="POST" action="http://oskuni7.sakura.ne.jp/B_auction_system/add_data.php">
<input type="submit" name="submit" value="完了・未完了設定">
<table>
<tr>
<td><input type="checkbox" name="checkbox[]" value="1" ></td>
<td><input type="checkbox" name="checkbox2[]" value="1" ></td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox[]" value="2" ></td>
<td><input type="checkbox" name="checkbox2[]" value="2" ></td>
</tr>
</table>
</form>

もっともこれだと行毎のsubmit機能が無くなるので、意図通りでは無いかも。

いっそ全部JSで制御すれば?って思いますけど。

◎質問者からの返答

ご回答ありがとうございます。

ふたつの機能を同時にひとつのページにPHPで持たせることは難しいということでしょうか?

JSは出来ないのでページ構成を変更してみようと思います。

回答ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ