2015-09-05 2 views
2

я следующий кодКак получить данные из ajax?

В контроллере

class AccountController extends Controller 
{ 

    public function login(Request $request) { 
     $data=$request->all(); 
     //print_r($request->all()) 
    //return view('main',['data'=>$data]); 
    } 
} 

В пути

Route::get('account/login', function() { 
    return View::make('manager.test'); 
}); 
Route::post('account/login', '[email protected]'); 

вид Войти

@extends('layout.manager') 
@section('content') 
<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<meta name="csrf-token" content="{{ csrf_token() }}"> 
<title>Example of Bootstrap 3 Vertical Form Layout</title> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css"> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> 
<style type="text/css"> 

</style> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $('.send-btn').click(function(){    
    $.ajax({ 
     url: 'login', 
     type: "post", 
     data: {'email':$('input[name=email]').val(), '_token': $('input[name=_token]').val()}, 
     success: function(data){ 
     console.log(data); 
     } 
    });  
    }); 
}); 
</script> 
</head> 
<body> 
<div class="bs-example"> 
<div class="secure">Secure Login form</div> 
{!! Form::open(array('url'=>'account/login','method'=>'POST', 'id'=>'myform')) !!} 
<div class="control-group"> 
    <div class="controls"> 
    {!! Form::text('email','',array('id'=>'','class'=>'form-control span6','placeholder' => 'Email')) !!} 
    </div> 
</div> 
<div class="control-group"> 
    <div class="controls"> 
    {!! Form::password('password',array('class'=>'form-control span6', 'placeholder' => 'Please Enter your Password')) !!} 
    </div> 
</div> 
{!! Form::button('Login', array('class'=>'send-btn')) !!} 
{!! Form::close() !!} 
</body> 
</html>          

@stop 

Когда я нажимаю кнопку «Отправить», все данные из ajax будут печататься в моей консоли браузера. Я попытался передать значение ajax для просмотра в моем контроллере, но каждый раз, когда он возвращает 500 внутренних ошибок. Кто-нибудь скажет, как передать значение ajax другому и где я делаю неправильно ?. спасибо

Update

следующее не работает

public function login(Request $request) { 
      $data=$request->all(); 
     $send= User::where('email','=', $data->email) 
     return view('main',['data'=>$send]); 
     } 



public function login(Request $request) { 
      return Redirect::to('home'); 
      } 

каждый думаю, работает нормально .only проблема, когда я вернуться в view.it ошибку броска в моем браузере консоли, как 500 внутренняя ошибка в противном случае если я напечатаю _r внутри контроллера, тогда он отобразит данные в моей консоли браузера.

обновления 2

В моем контроллере

public function login(Request $request) { 

    $data=$request->all(); 

    return $data; 
} 

Object { email: "[email protected]", _token: "gqqXvVfwbKRHQWczYNfFMmB9ZB943CLfLdG…" } 
+0

Это плохая практика, чтобы поместить данные по содержанию, не имея ничего в вашем расширяет класс –

+0

@ AdityaGiri.i получил то, что техник его подводит вы сказали – vision

+0

Поместите свой сценарий выше закрывающего тега тела – aldrin27

ответ

1

Я не знаю, что вы делаете с вашим Ajax. Но я делаю это как

$("#myform").submit(function(e) { 
    e.preventDefault(); 
    var form_url = $(this).attr('action'); 
    var form_data= $(this).serialize(); 

    $.ajax({ 
     url: form_url, 
     type: 'POST', 
     data: form_data, 
     dataType: 'json', 
     success: function(result){ 
       $('#result-area').html(result); 
     } 
    }); 
}); 

И получаю соответствующий ответ от формы.

И да, согласно вашему обновлению, если вы хотите, чтобы эти значения были доступны в Javascript, вы должны использовать пакет laracasts/utilities Jeffery Way. Удивительно это сделать. Вы можете просто сделать:

public function login(Request $request) { 
    $data=$request->all(); 
    $send= User::where('email','=', $data->email); 
    Javascript::put([ 'send' => $send ]); 
    return view('main'); 
} 

И тогда в вашем лезвии вы можете получить доступ, просто говоря

console.log('send'); 

И это будет делать магию.

+0

, спасибо, я попробую – vision

+0

@AdAditya Giri. Я понял, что тема ajax для laravel неверна. Любой способ поблагодарить вас – vision

2

В вашем успехе дозвона JQuery вы можете получить доступ к каждому элементу вашего объекта данных, как показано на демо

success: function(data){ 
     alert(data.email); 
     alert(data._token); 
     } 
+0

Почему вы хотите передавать данные из представления в другой вид с помощью ajax, вы можете иметь независимый вызов ajax в каждом представлении –

+0

@ Sourabh.sorry.i получил теперь, где я я делаю неправильные .ты, вижу, произошла ли какая-либо дальнейшая ошибка – vision

1

Я думаю, что это проблемы в маршруте.

Маршрут:

Route::get('account/login', function() { 
     return View::make('manager.test'); 
    }); 
    Route::post('account/login', '[email protected]'); 

Изменение, что в:

Route::get('account/login, ['as' => 'getLogin, 'uses' => '[email protected]']); 

    Route::post('account/postLogin, ['as' => 'postLogin', 'uses' => '[email protected]']); 

Контроллер:

Это:

public function login(Request $request) { 
     $data=$request->all(); 
     $send= User::where('email','=', $data->email) 
     return view('main',['data'=>$send]); 
    } 

    public function login(Request $request) { 
     return Redirect::to('home'); 
    } 

To:

public function postLogin(Request $request) { 
     $data=$request->all(); 
     $send= User::where('email','=', $data->email) 
     return $send; 
    } 

    public function getLogin(Request $request) { 
     return Redirect::to('home'); 
    } 
+0

@ aldrin27.thank. Теперь я попробую – vision

+0

Laravel запутан, если этот URL-адрес отправлен или получен от вашей функции, поэтому сделайте имя функции уникальным, если этот маршрут предназначен для получения просматривать или публиковать запросы. – aldrin27

+0

@ aldrin27.you правы – vision

Смежные вопросы