У меня проблема с запросом AJAX в среде PHP MVC: я не знаю, как вызывать данные в формате JSON из контроллера в представление, используя, например, jQuery.
Я потратил много часов на поискилюбой полезный совет в Интернете и попытка решить эту проблему самостоятельно, но безуспешно.
Я думаю, что проблема в том, где мне нужно написать URL;Я не могу написать это правильно.
Это код для контроллера:
public function indexAction()
{
$dbh = new PDO('mysql:dbname=myframework;host=localhost', 'root', '');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $dbh->prepare('SELECT variety ,fruit_id FROM fruit limit 10');
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
$data = $stmt->fetchAll();
echo json_encode($data);
}
И это код вида:
<!DOCTYPE html>
<html><head><meta charset="utf-8" /> </head>
<h1>grid ajax</h1> <body> <table id='grid'></table>
<script type="text/javascript" src="<?php echo PROJECT_URL ?>/views/search/jquery.js"></script>
<script type="text/javascript">
$(function(){
$.getJSON( myURL - HERE IS PROBLEM ! , function(json){
for (var i=0;i<json.length;i++) {
$('#grid').append("<tr><td>" + json[i].fruit_id + "</td><td>" + json[i].variety + "</td></tr>")
}
});
});
</script>
</body>
</html>
Вот маршрутизация:
getUrlFor($controller = 'index', $action = 'index') { $route = array('controller' => $controller, 'action' => $action); $routes = $this->getRoutes(); $url = array_search($route, $routes); if ($url === false) { $url = $controller . '/' . $action; } $url = PROJECT_URL . '/' . $url; return $url; } }
и public function urlFor()
:
public function urlFor($controller = 'index', $action = 'index')
{
return Router::getInstance()->getUrlFor($controller, $action);
}
Эта функция работает в этой среде Everywere;Пример формы URL: http://localhost/myframework/ajax/index, (var $myURL = "<?php echo $this->urlFor('ajax', 'index'); ?>";
- в jQuery я использую его в этой форме), только не в $.getJSON
.Я пытался написать этот URL во многих формах, ни одна из них не сработала.Это простой пользовательский фреймворк.