PHPについて質問です。


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

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

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

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

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

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

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

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

回答の条件
  • 1人2回まで
  • 登録:2009/07/27 21:51:08
  • 終了:2009/07/28 14:39:26

ベストアンサー

id:TomoTana No.2

TomoTana回答回数8ベストアンサー獲得回数22009/07/28 10:59:33

ポイント35pt

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で制御すれば?って思いますけど。

id:aiomock

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

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

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

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

2009/07/28 12:06:07

その他の回答(1件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/07/27 22:58:29

ポイント35pt

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[] の要素名を記述するのを忘れているのではないでしょうか。


参考サイト

id:aiomock

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

2009/07/27 23:03:36
id:TomoTana No.2

TomoTana回答回数8ベストアンサー獲得回数22009/07/28 10:59:33ここでベストアンサー

ポイント35pt

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で制御すれば?って思いますけど。

id:aiomock

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

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

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

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

2009/07/28 12:06:07
  • id:aiomock
    以下コード載せさせていただきました。

    トップページ
    http://oskuni7.sakura.ne.jp/B_auction_system/rakusatugo_jouhou.phps

    完了・未完了設定
    http://oskuni7.sakura.ne.jp/B_auction_system/checkbox_data.phps

    データの登録
    http://oskuni7.sakura.ne.jp/B_auction_system/add_data.phps

    お手数をおかけしますがよろしくお願いします。
  • id:TomoTana
    悪いことは言わないから、データベースのアカウントとかパスワードは伏せておいた方が良いです。
    あるいは全部ダミーなのかもしれませんが、それならそう書いてください。端から見ててドキドキします。
  • id:aiomock
    TomoTana さん

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

    誤解を招いてしまい申し訳ありません。

    次回からダミーであることを報告させていただきます。

    申し訳ありませんでした。
  • id:TomoTana
    > ふたつの機能を同時にひとつのページにPHPで持たせることは難しいということでしょうか?

    いや、HTMLのフォームがそれに向いてない、ということです。
    PHPは工夫次第で何でもできると思いますよ。
  • id:aiomock
    TomoTana さん

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

    アドバイスのおかげで少し機能を分けた形になりましたがうまく解決できました。

    ありがとうございます。

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません