Php 第一次使用Ajax(加上Laravel),但我在理解上有问题
今天我第一次尝试使用ajax。 我现在在拉拉维尔做请求 我经常提出的要求很有效。当我按下按钮时,视图可以毫无问题地传入。 现在,我试图得到具体的网站。出现了两个问题 1.结果显示一秒钟,然后再次消失。这很奇怪,因为我在其他请求中使用了相同的代码 2.)我的大部分页面与请求不匹配。当我从另一个页面启动它们时,在RouteCollection.php第201行:“”中得到了“MethodNotAllowedHttpException”。 我真的不明白有些页面有什么不同。因为整个路径是在jquery中定义的 这是我的密码。它简单,没有任何真正的功能。仅用于学习目的Php 第一次使用Ajax(加上Laravel),但我在理解上有问题,php,jquery,ajax,laravel-5,Php,Jquery,Ajax,Laravel 5,今天我第一次尝试使用ajax。 我现在在拉拉维尔做请求 我经常提出的要求很有效。当我按下按钮时,视图可以毫无问题地传入。 现在,我试图得到具体的网站。出现了两个问题 1.结果显示一秒钟,然后再次消失。这很奇怪,因为我在其他请求中使用了相同的代码 2.)我的大部分页面与请求不匹配。当我从另一个页面启动它们时,在RouteCollection.php第201行:“”中得到了“MethodNotAllowedHttpException”。 我真的不明白有些页面有什么不同。因为整个路径是在jquery中
AJAX
$(document).on('click','#getRoom', function(){
$id = document.getElementById("roomNr").value;
$.ajax({
url: $rootPath + '/ajax/GetContent3/' + $id,
type: "GET",
success: function(data){
$data = $(data);
$('#container').fadeOut().html($data).fadeIn();
}
});
_
_
_
编辑3
GET|HEAD| todo/{id}|| App\Http\Controllers\pagesController@show |
编辑4:
MY routes.php
Route::get('/', function () {
return view('welcome');
});
Route::get('admin/createroom', [
'middleware' => 'auth',
'uses' => 'roomController@create'
]);
Route::post('admin/createroom', 'roomController@store');
Route::get('todo', 'pagesController@index');
Route::get('image','pagesController@image');
Route::get('todo/create', [
'middleware' => 'auth',
'uses' => 'pagesController@create'
]);
Route::get('profile', [
'middleware' => 'auth',
'uses' => 'pagesController@profile'
]);
Route::post('todo','pagesController@store');
Route::get('todo/{id}','pagesController@show');
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
Route::get('logout','pagesController@doLogout');
Route::get('login', 'Auth\AuthController@getLogin');
Route::get('home', 'pagesController@index');
Route::get('/ajax/GetContent', array(
'uses' => 'ajaxController@loadContent'
));
Route::get('/ajax/GetContent2', array(
'uses' => 'ajaxController@loadContent2'
));
Route::get('/ajax/GetContent3/{id}', array(
'uses' => 'roomController@show2'
));
app/config.php对url的定义如下:
'url' => 'http://localhost/app2',
因此,当我打开“”并按下ajax按钮时,它就会工作
当我打开“http:localhost/app2/public/todo/1”并按下ajax按钮时,它不起作用 我是个白痴。
我没有意识到js文件没有加载到子例程中
所以不是
<script src="/js/app.js"></script>
我现在用
<script src="<?php echo url();?>/js/app.js"></script>
对于您遇到的第一个问题,“内容显示然后消失…”我认为您的jQuery代码有问题。如果你像那样链接你的调用,html、fadeIn和fadeOut的更改都是同时完成的
您必须使用fadeOut回调函数才能更改html,然后只有在fadeOut完成时才能对其进行fadeIn。为此,您必须像这样调用函数:
$(文档).on('click','getRoom',function(){
$id=document.getElementById(“roomNr”).值;
$.ajax({
url:$rootPath+'/ajax/GetContent3/'+$id,
键入:“获取”,
成功:功能(数据){
$data=$(数据);
var container=$(“#container”);
container.fadeOut(函数(){
html($data.fadeIn();
});
}
});
将return false;添加到函数中实际上修复了它。刚刚找到解决方案!但非常感谢!
GET|HEAD| todo/{id}|| App\Http\Controllers\pagesController@show |
Route::get('/', function () {
return view('welcome');
});
Route::get('admin/createroom', [
'middleware' => 'auth',
'uses' => 'roomController@create'
]);
Route::post('admin/createroom', 'roomController@store');
Route::get('todo', 'pagesController@index');
Route::get('image','pagesController@image');
Route::get('todo/create', [
'middleware' => 'auth',
'uses' => 'pagesController@create'
]);
Route::get('profile', [
'middleware' => 'auth',
'uses' => 'pagesController@profile'
]);
Route::post('todo','pagesController@store');
Route::get('todo/{id}','pagesController@show');
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
Route::get('logout','pagesController@doLogout');
Route::get('login', 'Auth\AuthController@getLogin');
Route::get('home', 'pagesController@index');
Route::get('/ajax/GetContent', array(
'uses' => 'ajaxController@loadContent'
));
Route::get('/ajax/GetContent2', array(
'uses' => 'ajaxController@loadContent2'
));
Route::get('/ajax/GetContent3/{id}', array(
'uses' => 'roomController@show2'
));
'url' => 'http://localhost/app2',
<script src="/js/app.js"></script>
<script src="<?php echo url();?>/js/app.js"></script>