下面是我的ajax多图像上传代码
<script>
$(document).ready(function()
{
var settings = {
url: "upload.php",
method: "POST",
allowedTypes:"jpg,png",
fileName: "myfile",
formData: {"projectId":$('#project_name').val()},
multiple: true,
onSuccess:function(files,data,xhr)
{
$("#status").html("<font color='green'>Upload is success</font>");
},
afterUploadAll:function()
{
alert("all images uploaded!!");
},
onError: function(files,status,errMsg)
{
$("#status").html("<font color='red'>Upload is Failed</font>");
}
}
$("#mulitplefileuploader").uploadFile(settings);
});
</script>
下面是我的文本字段值
<select class="form-control" name="project_name" id="project_name">
<option value="1">Project 1</option>
<option value="2">Project 2</option>
</select>
下面是我的文件上传器div
<div id="mulitplefileuploader">Upload</div>
上面的div使用了一个js文件,该文件可以通过ajax一次上传多个图像到一个文件夹,它的工作。但当我尝试发送数据(选定的下拉值)时,它总是为1,尽管我使用jquery启动。
文档中可能有什么问题吗。
感谢
当我更改下拉列表的值并使用图像上传时,项目id总是1,尽管我更改了下拉菜单的值并尝试使用获取值
$('#project_name').val()
我如何更改我的代码,以便在执行上传图像的脚本时,它将通过id project_name,selected.val 获得当前选定的下拉列表
谢谢
将上传绑定到表单的提交
$(document).ready(function()
{
$('form').submit(function(e){
e.preventDefault()
var settings = {
url: "upload.php",
method: "POST",
allowedTypes:"jpg,png",
fileName: "myfile",
formData: {"projectId":$('#project_name option:selected').val()},
multiple: true,
onSuccess:function(files,data,xhr)
{
$("#status").html("<font color='green'>Upload is success</font>");
},
afterUploadAll:function()
{
alert("all images uploaded!!");
},
onError: function(files,status,errMsg)
{
$("#status").html("<font color='red'>Upload is Failed</font>");
}
}
$("#mulitplefileuploader").uploadFile(settings);
});
});
使用
$('#project_name option:selected').val()
获取所选选项的值
现在,如果你想获得选项文本,即项目1、项目2等,你需要写
$('#project_name option:selected').text()
更新
问题实际上在于你的代码设置。您已经在$(document).ready
中创建了settings
。因此,即使您更改了selected option
,它也不会更改在document ready
期间定义的settings
内部的值。您需要更新您的设置onchange
或其他方式。
尝试$("#project_name option:selected").val();