0

だから私は私の知恵の終わりにいます。より複雑な問題のうち、これは私を困惑させたばかりの問題です。HTMLの問題なのかPHPの問題なのかはもうわかりません。私は思いつく限りのことをすべて試しましたが、何もしませんでした。さて、動的に作成されたテーブルから特定の名前を引き出す必要があります。正確には、武器の名前です。したがって、ユーザーが「武器の削除」ボタンをクリックすると、その武器が削除されます。クエリは問題ありません。私の問題はこの名前を取得することです。武器が1つだけで、これが動的でない場合は、特定のフィールド名を選択します。それはPHP101です。これはそれが引っ張られているループです:

while ( $weapons = mysql_fetch_array($data)) {
            echo '
              <table width="780" border="1">
                 <tr>
                    <td colspan="2">weapon</td>
                    <td>AttackBonus</td>
                    <td>crit</td>
                </tr>
                <tr>
                    <td colspan="2">

                        <input type="text" name="weaponName'.$i.'" id="weaponName'.$i.'"  size="10" value="'.$weapons["weaponsName"].'" />
                        <input type="hidden" name="weaponName" value="'.$weapons["weaponsName"].'"/>
                    </td>
                    <td>
                        <input type="text" name="attackBonus'.$i.'" id="attackBonus'.$i.'"  size="10" value='.$weapons["weaponsAttackBonus"].' />
                    </td>
                    <td>
                        <input type="text" name="crit'.$i.'" id="crit'.$i.'"  size="10" value='.$weapons["weaponsCritical"].' />
                    </td>
                </tr>
                <tr>
                    <td>type</td>
                    <td>range</td>
                    <td>ammunition</td>
                    <td>damage</td>
                </tr>
                <tr>
                    <td>
                        <input type="text" name="type'.$i.'" id="type'.$i.'"  size="10" value='.$weapons["weaponsType"].' />
                    </td>
                    <td>
                        <input type="text" name="range'.$i.'" id="range'.$i.'"  size="10" value='.$weapons["weaponsRange"].' />
                    </td>
                    <td>
                        <input type="text" name="ammunition'.$i.'" id="ammunition'.$i.'"  size="10" value='.$weapons["weaponsAmmunition"].' />
                    </td>
                    <td>
                        <input type="text" name="damage'.$i.'" id="damage'.$i.'"  size="10" value='.$weapons["weaponsDamaage"].' />
                    </td>
                </tr>
                <tr>
                    <td colspan="4">
                        <input type="submit" formaction="include/deleteweapon.php"  formmethod="post" value="Delete Weapon"/>
                    </td>               
                </tr>
                </table>

    ';
        $i++;}

それはおそらく小さなものであり、それが常に私の問題であった方法です。私はいくつかの異なるwhileループを試しました。issets($ _ post [“weaponName0”]などのステートメントを試してみました。わかりません。

編集:だから私は私が必要なものを説明するのがあまり得意ではありません。情報を表示するためのループは問題ありません。そうです、ボタンはそこにある必要があります。

(画像をアップロードするのに十分な担当者がいないので、ここにリンクがあります) http://farm9.staticflickr.com/8391/8468562067_0cd4158e35_b.jpg

こんな感じです。武器名の値がわかりません。ここでの出力は問題ありません。問題が発生しているのは、その特定の武器を削除する必要があるときです。その名前が必要です。これが、HTMLなのかPHPなのかわからない理由です。ボタンを繰り返す必要がありますか、それともポイントは何ですか?mySQLは問題ありません、それは簡単な部分でした。

私は自分に何ができるか考えていますが、私の意見ではそれは悪いデザインであり、私は同じ問題を抱えていると思います。これらのフィールドを削除するためのチェックボックスを追加すると、文字を保存しようとすると削除されます。

4

3 に答える 3

0

私はあなたの問題を100%理解しているとは思いません、私はあなたのHTMLを信じています、あなたは次のようなことをすべきです:

<input type="hidden" name="weaponName[<?php print $i; ?>]" value="The Name" />

PHPでは、インデックスを指定して名前にアクセスできるはずです。

$index = 1; // Some arbitrary index
$weapon_name = $_POST['weaponName'][$index];

または、私が行うこと:フォームのアクションで、IDを指定します。

<form action="delete.php?id=<?php print $weaponId; ?>" action="post">

次に、PHPで次のことができます。

$id = $_GET['id']; // This is the weapon ID

次に、IDを使用して、データベースから直接名前を取得できます。

于 2013-02-12T20:05:53.200 に答える
0

ループの反復ごとに1つの削除ボタンがあるようです。ラベルとして設定するのと同じように、削除する名前を設定できるはずです。

<input type=hidden name=weaponsName value=".$weapons['weaponsName'].">
<input type=submit ...>

$weaponsName = $_POST['weaponsName'];
于 2013-02-12T20:10:08.260 に答える
0

mysql_fetch_assocの代わりにmysql_fetch_arrayを使用しているため、次のようにフィールドインデックスを使用する必要があります。

 $weapons["weaponsName"] // This is wrong


 $weapons[0] // This is the right approach

PS:mysql拡張機能を使用しないでください.... mysqliまたはPDOにgo;)

Saludos。

于 2013-02-12T20:11:35.113 に答える