Вернуть ответ в аякс

342
23 января 2017, 21:56

Всем привет помогите доорганизовать чтобы получилось возвращать результат в аякс функции.. У меня никаких роутов, и.т.д нету кроме аутолоадера.

Я понимаю чтобы вернуть результат аяксу нужно обращатся к функции которая вернёт результат через return , но как это сделать? на данный момент у меня вот что есть:

error_reporting(E_ALL);
ini_set('display_errors', 1);
require __DIR__ . '/vendor/autoload.php';

if (isset($_POST['city']) && !empty($_POST['city'])) {

        $providers = [
            'app\Provider\YahooProvider',
            'app\Provider\OpenWeatherMapProvider',
        ];
        $apiKeys = [
            'YahooProvider' =>   '',
            'OpenWeatherMap' => '',
        ];
        $temperature = new app\Provider\DelegatingProvider($providers, $apiKeys);
        $location = new app\Location\Location($_POST['city']);
        $weather = $temperature->fetch($location);
        return json_encode($weather);
}

в принципе это моя точка и есть от куда мне бы и хотелось получить результат..

    <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Weather apps</title>
  </head>
  <body>
    <h1>Enter city for get temperature:</h1>
    <input type="text" id="city" value=""> <button>Get weather</button>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
        $('button').click(function(){
            var city = document.getElementById('city');
            $.ajax({
                type: 'POST',
                url: '/app.php',
                data: { city : city.value },
                success: function(data) {
                    console.log(data)
                }
            })    
        });
    </script>
  </body>
</html>

Всегда работал на готовых решениях фраймворках, когда всё организовано легко работается даже не задумываешся )) понимаю что много пробелов у меня решил попрактиковатся с нуля...

Answer 1
 echo json_encode($weather);

Всё просто!

Answer 2

PHP код - это и есть app.php ? Сделайте не return а echo )

Answer 3

на картинке возвращаю

var_dump($weather);
var_dump(json_encode($weather)); // почему-то {}

почему-то json_encode в response {} пусто если без него то нормальный обьект, а через echo do not object convert to string

READ ALSO
after transfer to another hosting,site Yii [требует правки]

after transfer to another hosting,site Yii [требует правки]

Missing argument 1 for article\models\Omenu::brendproductmanu(),called in /home/webhouseinfo/public_html/nar-aram/article/views/site/brend

309
Шанс рандома предмета [дубликат]

Шанс рандома предмета [дубликат]

Данный вопрос уже был задан и имеет решение:

325
Ошибка Notice: Undefined index: Price

Ошибка Notice: Undefined index: Price

Есть такой запрос

284