我正在尝试创建自己的TODO-WEB-APP。
我正在尝试为我的应用添加删除功能。
我正在使用从server.js获取请求,并将(通过res.render)任务数组传递给hbs文件。
现在,在我从server.js获取数据后,我将其显示在hbs文件中,然后我想让用户选择他想要删除的任务。
我的问题是,一旦用户选择要删除的任务,我就不知道如何从hbs中获取此数据。
server.js中的代码(请求):
<form id="delete">
<input value="Delete" type="submit">
</form>
<select id = "chooseDelete" form="delete">
<option> Choose task to delete</option>
{{#each todos}}
<option>{{missionNumber}}</option>
{{/each}}
</select>
hbs文件中的代码:
<p id="demo"></p>
<button id="deleteButton">Delete</button>
<script>
deleteButton.addEventListener("click", function(){
document.getElementById("demo").innerHTML = document.getElementById("chooseDelete").value;
});
</script>
通过这种方式,我得到了地址行的值,但我不知道如何抓住它并将其发送到server.js。
以这种方式:
document.getElementById("chooseDelete").value;
我只是得到了价值: public void dospeak(String speak,String voicename)
{
speaktext=speak;
String voiceName =voicename;
try
{ System.setProperty("FreeTTSSynthEngineCentral", "com.sun.speech.freetts.jsapi.FreeTTSEngineCentral");
System.setProperty("freetts.voices", "com.sun.speech.freetts.en.us.cmu_us_kal.KevinVoiceDirectory");
Central.registerEngineCentral("com.sun.speech.freetts.jsapi.FreeTTSEngineCentral");
SynthesizerModeDesc desc = new SynthesizerModeDesc(null,"general", Locale.US,null,null);
Synthesizer synthesizer = Central.createSynthesizer(desc);
EngineList engineList = Central.availableSynthesizers(desc);
EngineCreate creator = (EngineCreate)engineList.get(0);
List<Synthesizer> bagOfSynthesizers = new LinkedList<Synthesizer>();
int numberSynthesizers=1;
for (int i = 0; i < numberSynthesizers; i++) {
synthesizer = (Synthesizer)creator.createEngine();
bagOfSynthesizers.add(synthesizer);
synthesizer.allocate();
synthesizer.resume();
desc = (SynthesizerModeDesc) synthesizer.getEngineModeDesc();
}
Voice[] voices = desc.getVoices();
Voice voice = null;
for (int i = 0; i < voices.length; i++)
{
if (voices[i].getName().equals(voiceName))
{
voice = voices[i];
break;
}
}
synthesizer.getSynthesizerProperties().setVoice(voice);
System.out.print("Speaking : "+speaktext);
synthesizer.speakPlainText(speaktext, null);
synthesizer.waitEngineState(Synthesizer.QUEUE_EMPTY);
synthesizer.deallocate();
}
catch (Exception e)
{
String message = " missing speech.properties in " + System.getProperty("user.home") + "\n";
System.out.println(""+e);
System.out.println(message);
}
}
但同样,我不知道如何将其传回服务器。
[你可以看到这张照片] [1]
如果可以,请帮助我。答案 0 :(得分:0)
我建议你做一个Ajax DELETE请求。
所以...基本上你会得到你的taskID来删除并使用DELETE请求将ID发送到你的服务器。
我将举例说明:
1
的任务。DELETE /task/1
204 No Content
,404 Not found
返回到未找到的项目,并根据您的需要返回更多内容。