PHP: HTML: send HTML select option attribute in POST

前端 未结 5 391
走了就别回头了
走了就别回头了 2020-12-30 00:37

I want to send the selected item value along with the some attribute (stud_name) value. Is there any functionality in PHP to do so? Here is the example one.

         


        
相关标签:
5条回答
  • 2020-12-30 01:19
    <form name="add" method="post">
         <p>Age:</p>
         <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>
    

    You will have the selected value in $_POST['age'], e.g. 1_sre. Then you will be able to split the value and get the 'stud_name'.

    $stud = explode("_",$_POST['age']);
    $stud_id = $stud[0];
    $stud_name = $stud[1];
    
    0 讨论(0)
  • 2020-12-30 01:19

    You can use jquery function.

    <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 code :

    <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 讨论(0)
  • 2020-12-30 01:33

    You will have to use JavaScript. The browser will only send the value of the selected option (so its not PHP's fault).

    What your JS should do is hook into the form's submit event and create a hidden field with the value of the selected option's stud_name value. This hidden field will then get sent to the server.

    That being said ... you shouldn't relay on the client to provide the correct data. You already know what stud_name should be for a given value on the server (since you are outputting it). So just apply the same logic when you are processing the form.

    0 讨论(0)
  • 2020-12-30 01:35

    You can do this with JQuery

    Simply:

       <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>
    

    Add this code in Header section:

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

    Now JQuery function

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

    you can use both values as

    $name = $_POST['name'];
    $value = $_POST['age'];
    
    0 讨论(0)
  • 2020-12-30 01:35

    just combine the value and the stud_name e.g. 1_sre and split the value when get it into php. Javascript seems like hammer to crack a nut. N.B. this method assumes you can edit the the html. Here is what the html might look like:

    <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 讨论(0)
提交回复
热议问题