web-dev-qa-db-ja.com

PHP:HTML:POSTでHTML選択オプション属性を送信

選択したアイテムの値を属性(stud_name)の値とともに送信したい。 PHPでそうするための機能はありますか?以下に例を示します。

<form name='add'>
Age: <select name='age'>
     <option value='1' stud_name='sre'>23</option>
     <option value='2' stud_name='sam'>24</option>
     <option value='5' stud_name='john'>25</option>
     </select>
<input type='submit' name='submit'/>
</form>

ありがとう

21
Sridhar
<form name='add' method="post">
Age: <select name='age'>
     <option value='1_sre' >23</option>
     <option value='2_sam'>24</option>
     <option value='5_john'>25</option>
     </select>
<input type='submit' name='submit'/>
</form>

$_POST['age']に選択した値があります。例:1_sre。その後、値を分割して'stud_name'を取得できます。

$stud = explode("_",$_POST['age']);
$stud_id = $stud[0];
$stud_name = $stud[1];
36
rajmohan

JQueryでこれを行うことができます

単に:

   <form name='add'>
   Age: <select id="age" name='age'>
   <option value='1' stud_name='sre'>23</option>
   <option value='2' stud_name='sam'>24</option>
   <option value='5' stud_name='john'>25</option>
   </select>
   <input type='hidden' id="name" name="name" value=""/>
   <input type='submit' name='submit'/>
   </form>

このコードをヘッダーセクションに追加します。

<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>

JQuery関数

<script type="text/javascript" language="javascript">
$(function() {
      $("#age").change(function(){
      var studentNmae= $('option:selected', this).attr('stud_name');
      $('#name').val(studentNmae);
   });
});
</script>

両方の値を次のように使用できます

$name = $_POST['name'];
$value = $_POST['age'];
7
iJay

JavaScriptを使用する必要があります。ブラウザは、選択したオプションのvalueのみを送信します(したがって、PHPの障害ではありません)。

JSがすべきことは、フォームの送信イベントにフックし、選択したオプションのstud_name値。この非表示フィールドはサーバーに送信されます。

そうは言っても、正しいデータを提供するためにクライアントでリレーすべきではありません。 stud_nameは、サーバー上の特定の値に対応する必要があります(出力しているため)。したがって、フォームを処理するときに同じロジックを適用するだけです。

1
Jan Hančič

値とstud_nameを組み合わせるだけです。 1_sreと値をphpに取得するときに分割します。 Javascriptはハンマーのように見えます。 N.B.このメソッドは、htmlを編集できることを前提としています。 HTMLは次のようになります。

<form name='add'>
Age: <select name='age'>
     <option value='1_sre'>23</option>
     <option value='2_sam>24</option>
     <option value='5_john>25</option>
     </select>
<input type='submit' name='submit'/>
</form>
0
matpol

Jquery関数を使用できます。

<form name='add'>
   <input type='text' name='stud_name' id="stud_name" value=""/>
   Age: <select name='age' id="age">
   <option value='1' stud_name='sre'>23</option>
   <option value='2' stud_name='sam'>24</option>
   <option value='5' stud_name='john'>25</option>
   </select>
   <input type='submit' name='submit'/>
</form>

jqueryコード:

<script type="text/javascript" src="jquery.js"></script>

<script>
    $(function() {
          $("#age").change(function(){
          var option = $('option:selected', this).attr('stud_name');
          $('#stud_name').val(option);
       });
    });
</script>
0
Devang Rathod