【问题标题】:Append dropdown list result to formData object将下拉列表结果附加到 formData 对象
【发布时间】:2014-06-13 22:12:16
【问题描述】:

在 html 中,我在表单中有一个文件输入元素:

<input type="file" id="file-select" name="photos" />

然后在 javascript 中,我将其附加到我的 formData 对象 (formData) 中,如下所示:

formData.append('photos', file, file.name);

然后最后在 php 中检索传输的文件。

$fileName = $_FILES['photos']['name']; 

这很好用。

但是我在 HTML 中也有一个相同形式的下拉列表:

<label>Select Year to Load File to:</label>
    <SELECT name = "year_list">
        <OPTION Value="2013">2013</OPTION>
        <OPTION Value="2014">2014</OPTION>
        <OPTION Value="2015">2015</OPTION>
        <OPTION Value="2016">2016</OPTION>
    </SELECT>

但是我不清楚我需要使用什么语法将用户选择附加到formData 并在 php.ini 中检索结果。有人可以告诉我如何做到这一点吗?

我不想使用 jquery

我理解附加语句我应该使用语法:

append(DOMString name, DOMString value);

但是我会使用什么 DOMString 名称和 DOMString 值呢?我会在 php 文件中的 $_POST 中使用什么?

非常感谢。

【问题讨论】:

  • DOMString name 可能是 DOM 元素的名称。在您的情况下,“year_list”和value 是选择元素的选定值。

标签: php ajax forms xmlhttprequest append


【解决方案1】:

谢谢各位。经过一点睡眠和一些进一步的实验,我让它按如下方式工作:

在 javascript 中声明变量以从下拉列表中获取值并将这些值附加到 formData 对象,如下所示:

        var sel_month_list = document.getElementById("month_list");
        var month_list = sel_month_list.value;
        var sel_year_list = document.getElementById("year_list");
        var year_list = sel_year_list.value;
      formData.append('month_list', month_list);
      formData.append('year_list', year_list);

然后在php中成功检索到值:

$month = $_POST['month_list'];
$year = $_POST['year_list'];

看起来有点麻烦,但确实有效。如果有更优雅的方式来实现这一点,请随时参与。

问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-03
    • 2020-06-30
    • 2017-03-28
    • 2023-01-06
    • 2020-08-21
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    相关资源
    最近更新 更多