从javascript到控制器获取变量

时间:2017-07-29 12:36:17

标签: javascript php jquery laravel

我需要从java脚本函数到我的控制器中的变量。 在这里你可以看到我的ajax功能

<script>
    $('#spielAuswahl').on('change', function(e){
        console.log(e);

        var spielID = e.target.value;

        //ajax
        $.get('/spieler?spielID=' + spielID, function(data){
            console.log(data);
        });
    });
</script>

这是我的网络路由器

Route::get('/spieler', 'SpielerController@getSpieler');

这是我的控制器功能

public function getSpieler(){
        $spielID = Input::get(spielID);
        echo $spielID;
    }

我有这个问题

  

jquery.js:9664 GET http://localhost:8000/spieler?spielID=3 500   (内部服务器错误)

我需要改变什么?

2 个答案:

答案 0 :(得分:0)

我不知道你想要做什么,但这是一个传递价值的解决方案。

您可以为路线命名,例如:

Route::post('/spieler', ['as' => 'spieler', 'uses' => 'SpielerController@getSpieler']);

你的jquery:

var token = "{{ Session::token() }}";

$('#spielAuswahl').on('change', function(e){
  console.log(e);

  var spielID = e.target.value;

  $.ajax({
     method: "POST",
     url: "{{ route('spieler') }}",
     data: {id: spielID, _token: token}
  });
}

最后你的控制器:

public function getSpieler(Request $request) {
   $id = $request['id'];
   echo $id;
}

答案 1 :(得分:0)

您显示的代码缺少一些引号:

public function getSpieler(){
    $spielID = Input::get('spielID');  // quote `spielID` here
    echo $spielID;
}

如果您正在使用Laravel 5,则可以使用该请求:

use Illuminate\Http\Request;

...

public function getSpieler(Request $request) {
    echo $request->spielID;
}

您可以在网络服务器日志和500 Server Error中找到有关storage/logs/laravel.log的更多详细信息。