0

how can I send the data from a dropdown form with onchange function?

Just like www.abc.com/index.php?version=(the value I suppose to send)

I can only use onChange to submit the data, but it is not I want.

<form action="gp_data.php?gp_name=<?php echo $_GET['gp_name'] ?>&version=<?php echo $_POST['version'] ?>" method="POST">

<select name="version" onChange="this.form.submit()">

<option>Vers</option>

<?php while($subjectData = mysql_fetch_array($version)){ ?>

<option value="<?php echo $subjectData['version'];?>">
<?php echo $subjectData['version'];?>

</option>

<?php }?> 

</select>

</form>
henrik
  • 43
  • 1
  • 8

3 Answers3

1

1- Form-data can be sent as URL variables (with method="get"). GET to send sensitive data! (will be visible in the URL) like www.abc.com/index.php?version=value

2- you can use hidden filed to send the store data on server. that cannot be seen or modified by users when a form is submitted.

<form action="index.php" method="GET">
    <!----- Get the session value -->
    <?php
    $gp_name = $_SESSION['gp_name'];
    ?>
    <!---- use the hidden file to send the session data within action ---->
    <input type="hidden" name="gp_name" value="<?php echo $gp_name;?>">

    <select name="version" onChange="this.form.submit()">

        <option>Vers</option>

        <?php while($subjectData = mysql_fetch_array($version)){ ?>

        <option value="<?php echo $subjectData['version'];?>">
        <?php echo $subjectData['version'];?>

        </option>

    <?php }?> 

    </select>

</form>

After submit the form, data will send by url like.

www.abc.com/index.php?gp_name=gp_name&version=Vers2
Shivendra Singh
  • 2,986
  • 1
  • 11
  • 11
  • thanks for the help, I can submit the data by changing the dropdown list, but it is weird, because I need to choose two time to change the page. for example, when I choose version 1, first time is nothing change, I need to do it twice. do you know what happen? – henrik May 21 '19 at 08:58
  • I check, but form is submitting on first select. let me see – Shivendra Singh May 21 '19 at 09:23
  • oh, sorry, I have not mention that I need to retrieve two value in it, so I have modified the code a bit. I have edit the code part, as you can see gp_data.php?gp_name=&version=" method="POST">, I need to get gp_name and version – henrik May 21 '19 at 09:32
  • where is gp_name field in form? – Shivendra Singh May 21 '19 at 09:36
  • gp_name is from the other page which save in session, like $gp_name = $_GET['gp_name']; – henrik May 21 '19 at 09:40
  • Thanks for the great support!!! I will try to find to other way to hidden the data!!! – henrik May 21 '19 at 10:18
  • hi bro, there is a new problem, hope you are ok for help https://stackoverflow.com/questions/56473924/how-to-retrieve-data-from-mysql-to-chart-js – henrik Jun 06 '19 at 08:48
0

Try this

<form method="POST" action="">
    <select name="version" id="myselect" onchange="this.form.submit()">
        <option>Vers</option>
        <?php while($subjectData = mysql_fetch_array($version)){ ?>
        <option value="<?php echo $subjectData['version'];?>">
        <?php echo $subjectData['version'];?>
        </option>
        <?php }?> 
    </select>
</form>
0

This task can be simply achieved by using Jquery.

First of all add Jquery on your page.

Then call On change event in Ready state.

$(document).ready(function(){


  $('#myselect').on('change', function(){


     //Give your form an ID, i assume it is MyForm
     $('#MyForm').submit();


  });// Change


});// Ready
Rahat Hameed
  • 412
  • 3
  • 16