将下拉列表结果附加到formData对象

时间:2014-04-28 11:24:42

标签: php ajax forms xmlhttprequest append

在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中检索结果。有人可以告诉我如何做到这一点吗?

我不想使用jquery

我理解append语句我应该使用语法:

append(DOMString name, DOMString value);

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

非常感谢。

1 个答案:

答案 0 :(得分:0)

谢谢大家。经过一段时间的睡眠和一些进一步的实验后,我按照以下方式开始工作:

在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'];

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

此致