我有带有帖子表的 Twig 页面。每行都有带有操作选项的下拉列表。如何删除已处理的行,即下拉选择已更改。这是一个表
<tr>
<td>
<a href="{{ path('posts_show', {'id': report.post.id}) }}">
{{ report.post.title }}
</a>
</td>
<a href="{{ path('ausers_show', {'id': report.reporter.id}) }}">
{{ report.reporter.firstName }} {{ report.reporter.lastName }}
</a>
</td>
<td>
<select class="select-status" base-url="{{ path('reports_process', {'report': report.id, 'status': 'status'}) }}">
<option value="">Process</option>
<option value="dismiss">Dismiss</option>
<option value="delete">Delete</option>
</select>
</td>
</tr>
这个脚本。 Ajax 调用工作正常,但我无法删除成功调用时的行
<script>
$('.select-status').change(function() {
var url = $(this).attr('base-url');
url = url.substr(0, url.lastIndexOf("/"));
url = url + '/' + $(this).val();
processReport(url);
});
function processReport($url) {
var $tr = $(this).closest('tr');
$.ajax({
type: "PUT",
url: $url,
async: true,
data: { },
success: function () {
$tr.remove();
}
});
}
</script>
最佳答案
请按以下方式更新您的脚本 block :
<script>
$('.select-status').change(function() {
var url = $(this).attr('base-url');
url = url.substr(0, url.lastIndexOf("/"));
url = url + '/' + $(this).val();
processReport(url, $(this));
});
function processReport(url, row) {
var $tr = row.closest('tr');
$.ajax({
type: "PUT",
url: url,
async: true,
data: { },
success: function () {
$tr.remove();
}
});
}
</script>
我没有对您的代码进行太多更改,但是您的代码有很大的改进范围。如果您可以为此分享一个 fiddle ,我会为您做。
关于javascript - 选择更改后 Jquery 删除行成功 Ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43914191/