我正在尝试从数据库中分离一些数据。我正在尝试使用 Ajax 向我的 Controller 发送 2 个不同的数据,但无法成功。我需要domain_id
和 tag_id
。
这就是现在的样子:
@foreach($domains as $domain)
<tr>
<td>
@foreach($domain->tags as $tag)
<span><a href="#" data-tag-id="{{ $tag->id }}"
data-domain-id="{{ $domain->id }}">{{ $tag->name }}</a></span>
@endforeach
</td>
</tr>
@endforeach
现在我有 domain_id
和 tag_id
在 <a>
标签。我正在尝试使用 Ajax 将它们发送到我的 Controller ,将它们从我的数据透视表中分离出来,仅此而已。
JS代码:
$('a[data-tag-id]').click(function () {
var tag_id = $(this).attr('data-tag-id');
var domain_id = $(this).attr('data-domain-id');
$.ajax({
url: 'detaching',
type: 'GET',
data: {tag_id: tag_id, domain_id: domain_id},
dataType: 'json',
success: function (data) {
console.log('worked!');
}
});
});
路线代码:
Route::get('detaching', 'DomainController@detach2');
Controller 代码:
public function detach2()
{
$input = Input::get('all');
$domain = Domains::findOrFail($input['domain_id']);
$domain->tags()->detach($input['tag_id']);
}
这不起作用,我什至不知道是否调用了 gets Ajax 代码。我正在尝试 console.log()
有些东西出去了,但我没有得到任何返回。我什至不知道代码是否到达 Controller 功能。我对 Ajax 或 JS 根本没有太多了解。有人可以在那里帮助我吗?
小更新
我尝试过一个简单的方法:
$('a[data-tag-id]').click(function () {
console.log('YES');
});
但这也不起作用,所以我猜它不会在点击功能中跳转。
最佳答案
试试这个,
为您的 anchor 标记指定一个类。
<a href="#" class="get-link" data-tag-id="{{ $tag->id }}" data-domain-id="{{ $domain->id }}">{{ $tag->name }}</a>
更改路线至
Route::get('detaching/{tag_id}/{domain_id}', 'DomainController@detach2');
将 Controller 功能更改为
public function detach2($tag_id, $domain_id)
{
//$input = Input::get('all');
$domain = Domains::findOrFail($domain_id);
$domain->tags()->detach($tag_id);
}
将 JS 文件更改为
(function ($) {
$(document).ready(function () {
$(document).off('click', '.get-link');
$(document).on('click', '.get-link', function () {
var domain_id = $(this).data('domain-id');
var tag_id = $(this).data('tag-id');
$.ajax({
type: 'GET',
url: 'detaching'+ '/' + tag_id + '/' + domain_id + '/',
success: function (data) {
console.log('worked!');
},
error: function (data) {
console.log('Error:', data);
}
});
});
});
})(jQuery);
关于javascript - 无法使用 AJAX 向 Laravel Controller 发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38888895/