javascript - 我可以使用 Laravel 框架自动执行计算过程并直接更新表格吗?
问题描述
我是编程新手,目前正在使用 Laravel 框架开发一个量规评估模块。这是我处理控制器中标记计算的代码。但是,我想在不刷新页面的情况下实时更新计算。由于我缺乏 Javascript 和 JQuery 方面的知识,请问有没有什么方法或示例代码可以实时执行该过程?
foreach ($rubricArtifactDetails as $rubricArtifactDetail) {
foreach ($rubricCriteriaDetails as $rubricCriteriaDetail) {
if ($rubricArtifactDetail['rubricArtifactId'] == $rubricCriteriaDetail['rubricArtifactId']) {
$finalMark = 0;
if ($rubricCriteriaDetail['markSupervisor'] !== null && $rubricCriteriaDetail['markModerator'] !== null) {
$finalMark = ($rubricCriteriaDetail['markSupervisor'] + $rubricCriteriaDetail['markModerator']) / 2;
} elseif ($rubricCriteriaDetail['markSupervisor'] === 0 || $rubricCriteriaDetail['markModerator'] === 0) {
$finalMark = ($rubricCriteriaDetail['markSupervisor'] + $rubricCriteriaDetail['markModerator']) / 2;
} elseif ($rubricCriteriaDetail['markSupervisor'] === null && $rubricCriteriaDetail['markModerator'] === null) {
$finalMark = 0;
} elseif ($rubricCriteriaDetail['markSupervisor'] === null) {
$finalMark = $rubricCriteriaDetail['markModerator'] / 2;
} elseif ($rubricCriteriaDetail['markModerator'] === null) {
$finalMark = $rubricCriteriaDetail['markSupervisor'] / 2;
}
$finalMarkArray[$t] = $finalMark;
$t++;
}
}
}
这是我的评分标准输出示例,但它仅通过单击提交按钮更新标记。 https://imgur.com/a/36Ui93K
解决方案
实时实现此目的的唯一方法是使用 AJAX。jQuery$.ajax
是执行此任务的最简单方法之一。
- 为计算创建一个独立的网络路由并将其链接到相应控制器的方法。
$.ajax
在您的视图或脚本文件中创建一个函数。(虽然 *.blade.php 是执行此函数的更好位置,因为您可以轻松访问变量。)
// Javascript part
$.ajax({
url: `{{ route() }}`,
method: 'GET/POST/PUT/DELETE',
data: {
// If you want to send some params to the controller.
// You will receive the contents in `$request` object.
},
done: result => {
// This callback is only called when your request succeeds.
// This is the place where you need to update your HTML via DOM manipulation.
},
fail: result => {
// This callback is only called when your request fails.
},
always: () => {
// This callback is always called after a specific request is completed.
}
});
<?php
class TestController extends Controller {
public function calculate(Request $request) {
// DO YOUR CALCULATION
// Instead of returning view, return a JSON from here.
return response()->json(['status' => true, 'result' => 'YOUR_RESULT']);
}
}
?>
jQuery API 文档:https: //api.jquery.com/jquery.ajax/ Laravel JSON 响应文档:https ://laravel.com/docs/7.x/responses#json-responses
推荐阅读
- c# - 使用 DoubleBuffering 和 FormBorderStyle.None 在 Windows10 上重绘问题
- python - 在 mac 中安装 Tensorflow 时出错
- hadoop - hadoop fs -ls:从 server/127.0.1.1 到 localhost 的调用失败
- javascript - Tizen 浏览器中的 Javascript 控制台
- linux - SVN-repo 不同步
- typo3 - TYPO3 go_maps_ext 扩展 - 谷歌地图不显示在前端/网站
- qt - 在运行时禁用 Qt 承载管理
- javascript - webpack 没有将 [contenthash] 正确添加到我的 .js 文件中
- eclipse - Eclipse 保存操作与代码清理
- c# - 底层连接已关闭:发送时发生意外错误。” 使用 SSL 证书