如何以下拉形式添加onchange函数以发送数据?

时间:2019-05-20 10:31:46

标签: javascript php html

如何通过具有onchange函数的下拉表单发送数据?

就像www.abc.com/index.php?version=(我想发送的值)

我只能使用onChange提交数据,但不是我想要的。

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

3 个答案:

答案 0 :(得分:1)

1-表单数据可以作为URL变量发送(使用method =“ get”)。 GET发送敏感数据! (将在URL中显示),例如 www.abc.com/index.php?version=value

2-您可以使用隐藏字段在服务器上发送存储数据。提交表单时用户无法看到或修改的内容。

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

提交表单后,数据将通过url这样发送。

www.abc.com/index.php?gp_name=gp_name&version=Vers2

答案 1 :(得分:0)

尝试一下

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

答案 2 :(得分:0)

可以使用Jquery轻松完成此任务。

首先在页面上添加Jquery。

然后在就绪状态下调用更改事件。

$(document).ready(function(){


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


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


  });// Change


});// Ready