我有一张帖子的桌子。每行都有包含操作选项的下拉列表。如何删除已处理的行,即下拉选择已更改。这是一张表
<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>
答案 0 :(得分:4)
请按以下步骤更新您的脚本块:
<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>
我没有更改代码,但代码中有很大的改进。如果你可以为此分享一个小提琴,我会为你做。