Javascript Laravel 4,在javascript中传递一个变量来路由
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/27634285/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Laravel 4, Pass a variable to route in javascript
提问by Marwan
How Can I pass the variable (stock.id) return from Ajax response to the route to generate the url to edit a stock
如何将 Ajax 响应返回的变量 (stock.id) 传递给路由以生成用于编辑股票的 url
$.ajax({
url: 'sectors/stocks/' + $(this).data('sector-id'),
dataType:'json',
beforeSend:function() {
$('.stocks_list').html('Loading...');
}
})
.done(function(data) {
$('.stocks_list').html('<ul>');
$.each(data, function(index, obj_data) {
$.each(obj_data.stocks, function(indx, stock) {
$('.stocks_list').append('<li><a href="{{route("admin.stocks.edit","'+stock.id+'")}}">' + stock.symbol + ' </a></li>');
});
});
})
回答by lukasgeiter
You can first use a placeholder to generate the URL with and then replace that in javascript.
您可以先使用占位符生成 URL,然后在 javascript 中替换它。
var url = '{{ route("admin.stocks.edit", ":id") }}';
url = url.replace(':id', stock.id);
$('.stocks_list').append('<li><a href="'+url+'">' + stock.symbol + ' </a></li>');
回答by Carolina
Thanks lukasgeiter, you make my day. It works. Only must to change the replace method because laravel scape ":" to "%3A"
谢谢 lukasgeiter,你让我开心。有用。只需要更改替换方法,因为 laravel scape ":" 到 "%3A"
var url = '{{ url("/admin/solicitud", ":id") }}';
url = url.replace('%3Aid', data.datos[i].id);
dhtml+='<td><a href="'+url+'" class="btn btn-primary" role="button">Ver más...</a></td>';
or simple let the id string only
或者简单地让id字符串只
var url = '{{ url("/admin/solicitud", "id") }}';
url = url.replace('id', data.datos[i].id);
dhtml+='<td><a href="'+url+'" class="btn btn-primary" role="button">Ver más...</a></td>';
回答by Mayank Dudakiya
Best way to use route in ajax.
在 ajax 中使用路由的最佳方式。
Add route in hidden inputor take as a attributeinto the button or link. Like below.
在隐藏输入中添加路由或将其作为按钮或链接的属性。像下面。
This will save the other jquery code like get id and pass into the url. It's simple just get the url from input and pass as a URL. That's it.
这将保存其他 jquery 代码,如 get id 并传递到 url。很简单,只需从输入中获取 url 并作为 URL 传递即可。就是这样。
<a data-url="{{ route('delete.PendingPatient',['id' => $u->id]) }}" class="btn btn-xs btn-danger btn_delete"> Delete </a>
Route
路线
<?php
Route::delete('/pending_patient/{id}','PatientController@pending_patient'])->name('delete.PendingPatient');
jQuery
jQuery
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery(document).on('click','.btn_delete',function(){
var current = jQuery(this);
var url = current.data('url');
$.ajax({
url: url,
dataType:'json',
beforeSend:function() {
$('.stocks_list').html('Loading...');
}
})
.done(function(data) {
$('.stocks_list').html('<ul>');
});
});
});
});
</script>

