使用this.form.submit()提交表单后,无法获取表单元素的值。

时间:2019-07-30 07:59:53

标签: javascript php

这是我的PHP HTML:

<form method="post" action="">
    <select name="seltemplate" id="seltemplate" style="width:150px" onChange="this.form.submit();">
        <option value="0">Select a Template</option>
        <?php
        // Running the sql query
        $query = "SELECT * FROM `stripo_email_templates`";
        $rs = mysqli_query($con, $query);

        // If at least one record found
        if(mysqli_num_rows($rs) > 0)
        {
            // Fetch table rows
            while($row = mysqli_fetch_array($rs))
            {
                $template_id = $row['template_id'];
                $template_name = $row['template_name'];
                echo "<option value='$template_id'>$template_name</option>";
            }
        }
        ?>
    </select>
</form>

我正在使用this.form.submit();提交表单,而没有任何提交按钮。

因此,一旦更改“选择列表”选项,便会提交表单。

提交表格后,我想接收选择列表中所选选项的值。

我在回声

echo $_POST['seltemplate'];

,但未收到任何值。为什么?

1 个答案:

答案 0 :(得分:1)

this.form.submit()并不是在选择框元素中写的好习惯,因为“此” 表示选择框不是表单或文档,因为您尝试此代码。

function select_box_change()
{
    var f = document.getElementById('form1');
    f.action = "your_php_file";
    f.submit();
}

html

<form method="post" id="form1">
    <select id="seltemplate" style="width:150px" onChange="select_box_change();">
        <option value="0">Select a Template</option>
        <option>a</option>
        <option>b</option>
    </select>
</form>