在laravel中发送ajax后,laravel在自定义文件中查询?

高拉夫·沙纳

我在我的服务器上创建了一个 ajax.php 文件,并使用 ajax 和 jquery 将 id 发送到文件。

我想在该 ajax.php 文件中运行数据库查询以获得结果。

我无法做到这一点。

你能帮我么。

查询代码:

$('.invitebyemail').click(function(){
    var email = $('#add-members-event-email').val();
    var eventid = $('.eventid').val();
    var pathname = window.location.pathname; // Returns path only
    var url      = window.location.href;     // Returns full URL
    var APP_URL = {!! json_encode(url('/')) !!};
    alert(APP_URL);
    alert(url);
    $.ajax({
        url: APP_URL+'/ajax.php',
        type: 'POST',    
        data: { id: eventid },
        success: function (data) {
            alert(data);
        },
        error: function () {
            alert('error');
        }
    });
    return false;
});

Ajax 文件代码:

use DB;
$eventid = $_POST['id'];
echo $eventid;
$users = DB::table('users')->get();
print_r($users);

谢谢

塞尔吉奥·雷斯

如果您使用的是 laravel,我不相信使用这样的 .php 文件是正确的做法……它并没有真正遵循 MVC 模式。

我建议创建一个控制器php artisan make:controller MyController,在控制器上创建一个函数

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Validator;
use Session;
use Auth;
use Response;
use DB;
use App\User;

class MyController extends Controller{
  public function getUsers(Request $request){
    $users = DB::table('users')->get();
    // If you need access to request parameters use this ( $request->id ) being id the parameter name 
    return response()->json(["users" =>$users]);
  }

}

像这样在 ProjectFolder/routes/web.php 中创建一个路由

Route::post('/getUsersAjax',[
  'uses'=>'MyController@getUsers',
  'as'=>'getUsers'
]);

并且在您的 jquery 中不要忘记将 _token 添加到您的数据中data: { id: eventid , _token : token},(如果您需要此令牌,您可以在 .blade.php 文件中,您的视图,使这个

<script>
   var token = "{{Session::token()}}";
   var urlRequest = "{{route('getUsers')}}";
</script>

)

https://laravel.com/docs/5.4/controllers

https://laravel.com/docs/5.4/routing

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章