我在servlet中发送了一个2数组,但我不知道如何在javascript中发送我的第二个数组到我的servlet,我希望有人帮助我,谢谢。
<label for="pets">Choose your Vegetables:</label>
<select class="selectpicker" name="vegetables-selected" id="vege" multiple aria-label="size 3 select example">
<option value="Carrot">Carrot</option>
<option value="Broccoli">Broccoli</option>
<option value="Cabbage">Cabbage</option>
<option value="Cucumber">Cucumber</option>
<option value="Mushroom">Mushroom</option>
</select>
<label for="pets">Choose your pets:</label>
<select class="selectpicker" name="vegetables-selected" id="pets" multiple aria-label="size 3 select example">
<option value="dog">dog</option>
<option value="car">car</option>
<option value="snake">snake</option>
</select>
<Script>
document.getElementById('submit').onclick = function() {
var selected = [];
var selected2 = [];
for (var option of document.getElementById('vege').options
var option of document.getElementById('pets').options)
{
if (option.selected) {
selected.push(option.value);
}
}
document.location.href = 'output?selected='+ selected ;
}
</Script>
西兰花、黄瓜、土豆空
for (var option of document.getElementById('vege').options var option of document.getElementById('pets').options)
- 对不起,这是什么?for循环不是这样的。
- 为什么不创建一个模型类,在前端,表示页面上的数据(查看MV*设计模式),并使用模型表示/发送您的数据。比如:
src/models/YourPreferencesModel.js
(或类似的东西)
class YourPreferencesModel extends BaseModel {
constructor(vegetables = [], pets = []) {
super();
this.vegetables = vegetables;
this.pets = pets;
}
}
,然后让你的BaseModel
像:
src/models/BaseModel.js
(或类似)
class BaseModel {
/**
* @param { (success : boolean) => {} } onDone
**/
save(onDone) {
let xhr = new XMLHttpRequest();
xhr.open("POST", '[your_endpoint_here]');
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onload = () => {
onDone((xhr.status >= 200) && (xhr.status < 400));
}
xhr.send(JSON.stringify(this));
}
// something similar for get() method
}
和在HTML文件的<head>
处
<script src="src/models/BaseModel.js" />
<script src="src/models/YourPreferencesModel.js" />
在视图模型(或控制器)类中创建模型,在启动时实例化,让视图组件通过视图模型/控制器更新该模型,并将提交处理移动到视图模型/控制器。视图中的onclick
会调用视图模型/控制器的save()
,然后视图模型/控制器会调用模型的save()
。
免责声明:我没有运行这段代码,所以,像往常一样,任何在代码论坛上查看问题代码的人都应该检查它。
这段代码还使用了老式的XMLHttpRequest
。你可以使用fetch()
, jQuery的post()
,…,任何在你的端。这将大大简化模型方法。
document.location.href = 'output?selected='+ selected ;
另外,您只需更改页面URL,因此使用数据向服务器发出GET请求。不。这需要一个POST请求。