2016-06-25 20 views
0

私はいくつかの異なる入力フィールドを持つフォームを含むPHPページを持っています。 g。フォームメソッドはPOSTで、編集不可能なフィールド(ユーザーID)はGET経由で送信されます。 もちろん、Submit(送信)ボタンがあり、Action(PHP Script on Server)というフォームを起動します。
フォームタグには空のセルも含まれています。送信時に「ボタン」-IDを送信

ユーザーがテーブルセルの1つにクリックするとフォームが送信されますが、通常のフォームデータに加えてテーブルセルのIDも送信する必要があります(POST経由またはGET経由ではない場合)。私には関係ない)。どうやってやるの?

//編集2:

... 
<form method="post" action="<?= DOMAIN?>/.../addUserTimetable.php?uid=<?= $user->getUserID() ?>"> 
    <select id="day" name="day"> 
    ... 
    </select> 
    ... 
    <input name="yearend" id="yearend" ...> 
    <button type="submit">...</button> 
    <table class="bordered"> 
    <tr> 
     <th>Std.</th> 
     <th>Montag</th> 
     <th>Dienstag</th> 
     <th>Mittwoch</th> 
     <th>Donnerstag</th> 
     <th>Freitag</th> 
    </tr> 
    <?php 
     for($i=1; $i<13;$i++) { 
     echo "<tr>"; 
     echo "<th>".$i. "</th>"; 
     for($j=1;$j<6;$j++) { 
      echo "<td id='h".$i. "d".$j. "' onclick='???'></td>"; 
     } 
     echo "</tr>"; 
     } 
    ?> 
    </table> 
</form> 
... 

サーバー両面行列は大丈夫ですが、私は、任意のアイデアを持っていない - でも、2時間のGoogleの後に - 私は、さらにセルIDを送信することができますか。

+1

もう少し詳しくお聞かせください。 – Akshay

+0

@Akshayしようと思った;)編集しました。 –

+1

あなたのコードを表示できますか? – Christoffer

答えて

1

これは難しくありません。次の例を見て:

<form> 
    <input type="text" name="something"> 

    <table> 
     <tr> 
      <td><input type="submit" name="cel1"> 
     </tr> 
     <tr> 
      <td><input type="submit" name="cel2"> 
     </tr> 
     <tr> 
      <td><input type="submit" name="cel13"> 
     </tr> 
    </table> 

    <input type="submit" value="save"> 
</form> 

テーブルセルname属性で送信ボタンを与えることで、その名も$_REQUESTのキーとして存在することになります。 $ _REQUESTをvar_dumpすると、どのキーが存在するかをチェックすることでどのボタンが押されたのかをバックエンドで調べることができます。

POST/GETは完全には無関係ですが、どちらも同じように動作することに注意してください。もちろん、これらのボタンを透明にして表のセルの上に置くために、それらのボタンにいくつかのCSSを適用することができます。そのため、ボタンのように見えるのではなく、単にユーザーのクリックを「キャプチャ」します。

GETパラメータとしてuserIDを送信してもよろしいですか?悪意を持った人が操作するのはとても簡単です。 IDはまったく送信せず、サーバー上のセッションに保持してください。

+0

あなたの答えをありがとう。はい、getとしてユーザーIDを送信するのは安全ではないようですが、そうではありません。フォームアクションでは、ログインユーザー権限がチェックされます。一部のユーザーは、他のユーザーの時刻表を変更することができます。 –

+0

忘れたこと:uidは編集ユーザーのIDではなく、タイムテーブルが追加されたユーザーのIDです。 –

+1

ええ、私はすでにあなたのアップデートからそれを得ました。あなたはおそらくそれを保存しています(これは認証されたユーザーだけがアクセスできると思います)。ちょっとした警告を出すだけでした。あなたがインターネット上で見るもの... – Pevara