我可以从数据库中选择一个值并将其扔到<div>
内
我的问题是,我不知道如何这样做并遵循MVC
规则,因为我正在使用Laravel
框架。
这是我到目前为止所做的:
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="https://code.jquery.com/jquery-2.2.3.min.js" integrity="sha256-a23g1Nt4dtEYOj7bR+vTu7+T8VP13humZFBJNIYoEJo=" crossorigin="anonymous"></script>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="script.js"></script>
</head>
<body>
<div id="wrapper">
<input type="button" id="btn" value="Click Me :)"></input>
</div>
</body>
</html>
<?php
include ('db.php');
$pdo = connect();
$dados = $pdo->prepare("SELECT field FROM table WHERE id = ?");
$dados->execute(array("2"));
$usr = $dados->fetch(PDO::FETCH_ASSOC);
echo "<p> Nome:" .$usr["nome"]. "</p>"; //Teste
$(document).ready(function(){
$('#btn').click(function(){
$.ajax({
url: "ajax.php",
type: "GET",
dataType: "html", //expected return type
success: function(response){
$('#calendario').fullCalendar(
'renderEvent',
{
title: 'Novo evento',
start: '2016-04-06T08:00:00', // I need to put the data here
end:'2016-04-06T10:30:00' // And here aswell
}
);
}
})
});
});
我将此作为测试,它正在运行......我怎样才能使用Laravel MVC
做同样的事情?在这里,我不得不创建一个自定义的php文件(ajax.php)来进行选择。有没有办法使用我的Controller /Model
做同样的事情?
答案 0 :(得分:2)
是。您要做的是让URL指向您指定的路由(URL)。您可以在app / Http / routes.php中指定路由,如下所示:
// Perform some action
Route::get('/whatever/url/you/like', 'SomeController@someAction');
这将寻找&#34; GET&#34;方法调用,这意味着您也可以从浏览器进行测试。第一个参数是您要使用的URL,第二个参数是Controller,@符号,然后是您想要调用的公共函数。
在您创建的控制器类中,您将返回一个包含要返回的数据的数组。 Laravel默认情况下会自动将该数组转换为JSON供您使用。
如果您要询问如何分离代码(控制器中应该包含哪些内容以及模型中应该包含哪些内容),那么您可以在命令行中使用artisan命令让Laravel自动创建一个空白控制器类,为您提供对象上常见操作的公共函数:
php artisan make:controller PhotoController
可以找到更多信息in Laravel's documentation。如果将控制器中的代码限制为对使用Model类创建的对象执行的操作,那么这将在很长的路要走。希望这有帮助!
如果在浏览器中输入AJAX调用的URL返回一些JSON,那么您就在正确的轨道上。从发出呼叫的JavaScript,&#34;响应&#34;变量应包含该数据。如果您需要对其进行分析,请使用Chrome DevTools并添加一个检查点,以便您可以准确分析该变量中的返回值。另一种方法是使用console.log将该数据打印到浏览器的控制台。
答案 1 :(得分:1)
控制器
public function testajax($id) {
$test = table::findorfail($id)->toarray();
return response()->json($test);
}
的javascript
$(document).ready(function()
{
$(document).on('submit', '#reg-form', function()
{
var data = $(this).find("#post_id").val();
$.ajax({
type : 'GET',
url : {{url("/ajax")}}',
data: data,
success: function(data) {
console.log(data);
},
error : function(data)
{
alert("error");
}
});
return false;
});
});
路由文件
Route::get('/ajax/{id}', 'Contoller@testajax');
这段代码确实有效,但这就是它的完成方式