我正在尝试通过javascript函数调用laravel路由。我一直在互联网上和这里进行过探索,但没有找到解决方案。我在堆栈溢出中提到了一个关于如何在javascript函数中调用route的答案,但它对我不起作用。我的路线:
Route::get("edit_contact/{id}",'ContactController@edit');
JavaScript函数:
{
var url = '{{ route("edit_contact",":id") }}';
url = url.replace(':id', count);
document.location.href = url;
}
count在javascript中定义,我需要在路由中传递。
问题是它不断出错。
Route [edit_contact] not defined.
通过html时,所有这些路由都可以正常工作。我也试图通过此方法调用其他路由,但是没有任何一条。
答案 0 :(得分:1)
像这样命名您的路线:
Route::get("edit_contact/{id}",'ContactController@edit')->name('edit_contact');
答案 1 :(得分:0)
var routeUrl = route('posts.index');
var routeUrl = route('posts.show', {post: 1337});
// Returns results from /posts
return axios.get(route('posts.index'))
.then((response) => {
return response.data;
});
答案 2 :(得分:0)
尝试
let count=3
document.location.href = `edit_contact/${count}`;
答案 3 :(得分:0)
尝试一下。它应该工作:
Route::get("edit_contact/{id}",'ContactController@edit');
javascript code
<script type="text/javascript">
$("#valueid").change(function(e){
var id= e.target.value; // the id to be pass
//alert(id);
//checking the state of the domain if secured or not
if ("https:" == document.location.protocol) {
//alert('secured');
location.href="https://www.example.com/edit_contact/"+id;
} else {
//alert('not secured');
location.href="http://www.example.com/edit_contact/"+id;
}
});
</script>
答案 4 :(得分:0)
在路由文件中:(web.php)
Route::get("edit_contact/{id}",'ContactController@edit');
在js代码中:
在这里,我仅以计数值3为例。您可以使用count的实际值。
<script>
var count = 3;
var baseurl = window.location.protocol + "//" + window.location.host;
var url = baseurl + '/edit_contact/' + count;
document.location.href = url;
</script>