我在服务器上创建了一个ajax.php文件,并使用带有jquery的ajax将id发送到该文件。
我想在该ajax.php文件中运行db查询以获得结果。
我无法做到这一点。
你能帮我吗?Jquery代码:
$('.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);
由于
答案 0 :(得分:1)
如果您正在使用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>
)