$_POST отвечает обратно на веб-страницу и как обращаться с данными на динамической веб-странице
Я довольно новичок в php, так что эта функциональность ставит меня в тупик, я дам вам картину для контекста. Схема применения для опорного изображения
Таким образом, я могу запросить свою базу данных и установить каждый бит данных в отдельную переменную (может быть, не самый лучший способ для этой ситуации?) Но я не знаю, как $_post эти данные (в форме переменной...:), вероятно, плохая идея, и мне придется устанавливать данные как переменные, где бы я ни работал с формулами, и отправлять информацию только через ajax) обратно на отображаемую страницу (примечание: я не хочу, чтобы моя страница когда-либо обновлялась) Я предвижу еще одну проблему, и из-за недостатка знаний и неспособности Google ответить на мои вопросы, как я могу установить php Запустить мои алгоритмы и сохранять исходные данные на странице каждый раз, когда мои пользователи меняют одно поле на странице, я хочу, чтобы они чтобы все работало на сервере, а не в браузере, поэтому я планирую, чтобы ajax отправлял все данные, включая измененные, в php-файл каждый раз, когда они что-то меняли, и сбрасывал информацию на странице после запуска своих формул. Я изучал $_post и получить и запрос ЭСТ. и не смог мысленно определить, каким образом передача данных будет наиболее эффективной и простой в работе.
Извините за случай, я надеюсь на некоторую конструктивную критику, решения и объяснения для новичка в php, и спасибо за любую помощь.
1 ответ
Привет, это работает так в jQuery
$.post('url', {input}, function(data){
});
Javascript сделает веб-запрос так же, как если бы вы указали URL в браузере, верно (если это $.get, то есть, очевидно, мы не можем отправлять данные постов с помощью панели URL браузера, однако вы можете перейти на страницу только без опубликовать данные). Теперь, потому что это AJAX, все, что возвращается, уходит в данные. Это асинхронный, что означает, что ваш JS не будет ждать запроса, например, если вы поставите
$.post('url', {input}, function(data){
});
alert(data.result);
Он не будет работать по двум причинам, одна из них - область действия (данные - это входной параметр функции, недоступный за пределами функции). Другая причина в том, что оповещение сработает до завершения публикации, даже если оно написано после запроса $.post. Из-за этого вы должны использовать данные в функции обратного вызова.
Теперь на стороне PHP, где когда-либо этот URL-адрес запускается так же, как вы пошли туда нормально. По сути, нет никакой разницы для сервера, его AJAX или запрос браузера. Это как отправка формы. Самое интересное, что вы можете сделать, это вернуть ваши данные в формате JSON. с помощью заголовка JSON приложения и с помощью json_encode()
в PHP. Это по сути нотация JavaScript String Object. (не уверен, правильно ли я это помню) но это то, что есть.
В запросе нет магии. Большинство людей на самом деле не понимают, что все, что возвращает сервер - это только текст. Будь то файл PDF, JPG, веб-страница, что угодно, только его текст. JSON позволяет вам сохранить структуру ваших данных, таких как массив. Это специальный формат текста, который JavaScript понимает как объект и массивы.
Я объяснил это одному из моих младших разработчиков на днях. Если вы установите правильные заголовки, вы можете генерировать CSS-файлы с помощью PHP, изображений и т. Д. Потому что это всего лишь текст. Сеть очень проста. У вас есть только получать и отправлять запросы и текст в качестве ответа. Вот и все по большей части.
Тем не мение,
Да, теперь в PHP (для быстрого примера)
header('Content-Type: application/json');
$a = array('one'=>1);
echo json_encode( $a );
С json_encode()
это становится (это ответ, отправленный обратно с сервера)
'{one:1}'
А в JS на стороне клиента (внутри обратного вызова $.post) его
data.one;
Мы можем взять это data
в обратном вызове вы можете просто использовать базовый jQuery для замены значений ввода или содержимого тегов HTML возвращенными данными.
$('#input').val(data);
$('#htmlElement').text(data); // or data.one - whatever you had in php array keys.
Есть смысл? Выше мы берем использование массива PHP json_encode()
, чтобы сделать его строкой JSON, а затем (с правильным заголовком) мы можем получить к ней доступ в JS, используя ее точечный синтаксис. Помните, что я говорил выше только о возврате текста с сервера, поэтому мы должны преобразовать его в строку JSON. Точка в JS похожа на ->
в PHP. Вы также можете использовать data['one']
который даже больше похож на PHP, но технически это не правильный путь, если вы знаете, что one
является.
Процесс также прост, как у нас есть только post get и текст. Мы можем только делать запросы от клиента и ответы от сервера. Так всегда
Client Request -> Sever Response -> Client receives response.
Мы не можем, например, позвонить клиенту с сервера.
Sever Call-> Client receives
Это не работает без таких вещей, как NODE.js или сервер сокетов.
Для справки (об ответах JSON)