我正在使用 play 框架做一个项目。
单击某些链接(例如“显示”)后,例如 car.show(55) 正在被调用,并且在 car.show 中正在执行一些数据库查询。然后 列表操作正在进行中。
我想做的是,从java脚本文件中调用removegivencar函数。
我的意思是,
当所有汽车都列在 html 文件中时。我将使用该车的 id 调用 js 函数。
例如:删除我的车
我想在js而不是html中调用car.removegivencar函数
因为我有车的 ID。我应该做 @{car.removMyOwremovegivencar(mycar.id)} 操作...
我试过了
function removeMyCar(id)
{
window.location="@{car.removMyOwremovegivencar(id)}";
}
或 window.location="@{car.removMyOwremovegivencar("+ id + ")"
等等。但做不到:((( 请引导我解决这个问题...
最佳答案
如果写得正确,那么它应该可以工作。但事实上,这是从数据库中删除实体的一个坏例子。这是因为您尝试使用 GET 请求。使用 GET 进行删除不仅符合逻辑,而且在某些情况下也可能对您的应用程序造成危险。但如果您以这种方式使用它,请检查以下内容:
你的路由文件应该包含类似的内容:
GET /car/remove/{id} car.removMyOwremovegivencar()
还要确保将 id 参数传递给您尝试调用 js 代码的 View 。我没有看到任何其他原因导致此代码不起作用。
但考虑更好的方法:
它是使这个 Action POST或DELETE并对其进行AJAX调用:
路线:
DELETE /car/{id} car.removMyOwremovegivencar()
和你的 JS(使用 jQuery):
function removeMyCar(id)
{
$.ajax({
type: "DELETE",
url: "@{car.removMyOwremovegivencar()}",
data: {
id:id
}
});
}
关于javascript - 在play框架中从javascript调用java函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10611049/