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

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

echo $_POST['seltemplate'];

但没有收到任何值。为什么?

最佳答案

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

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>

关于javascript - 使用 this.form.submit() 提交表单后无法获取表单元素的值;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57266922/

相关文章:

javascript - KonvaJS:缩放整个舞台时如何防止某些形状缩放?

javascript - 在手动刷新页面后触发 onunload 处理程序中的 jQuery ajax 调用。我如何保证先卸载?

javascript - 如何在 Magento 中将可配置产品显示为相关产品及其选项

php - Yii 自动数据库迁移

php - JQuery 根据不同选择框的选定值使选择框在页面加载时可见

php - fwrite 不会断行

javascript - 如何使用 JavaScript 计算具有每小时值的数据集的每日平均值

javascript - jQuery 设计失误还是历史原因?

php - CakePhp 3 - 如何在包含结果中按 SUM 排序

javascript - 将所有内容都返回 1 个 json 好吗?