Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ajax обновление информации в бд (https://javascript.ru/forum/misc/63266-ajax-obnovlenie-informacii-v-bd.html)

PonyS 27.05.2016 18:49

Цитата:

Сообщение от laimas (Сообщение 417825)
Если клиент вносит изменения для элемента на странице, то эти изменения уже произошли, зачем серверу возвращать это назад? Ему нужно сохранить изменения и вернуть результат сохранения - успешно или же произошла ошибка.

Если страница содержащая изменяемый элемент содержит и код обработки запроса клиента на изменение, то этот код должен быть расположен до любого вывода в браузер.

Пример без базы, на сессии. Сохранить под любым именем и запустить. Изменить класс элемента. Нажать F5 (последующее открытие страницы).

<?
session_start();
if($_POST['choice']) {
    $_SESSION['class'] = $_POST['choice'];
    exit('Ok');
}
?>
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<style>
.red {
    color: #f00;
}
.green {
    color: #0f0;
}
</style> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script> 
$(function() {
    $('input').change(function() {
        $('p')[0].className = this.value;
        $.post(location, {choice : this.value}, function(d) {
            alert(d)
        }) 
    });
});
</script>     
</head> 
<body>
<p class="<?=$_SESSION['class'] ?: 'red'?>">Text</p>
<fieldset>
<legend>Изменение класса</legend>
<label><input type="radio" name="choice" value="red" <?=!$_SESSION['class'] || $_SESSION['class']=='red' ? 'checked' : null?> /> Красный</label>
<label><input type="radio" name="choice" value="green" <?=$_SESSION['class']=='green' ? 'checked' : null?> /> Зеленый</label>
</fieldset>
</body> 
</html>


То есть, при запросах страницы элемент будет иметь тот класс, который ранее был сохранен. Отсылать для этого элемент Р на сервер нет необходимости.

Другое дело, если речь идет, к примеру, о визуальном редакторе и html-код подготавливаемый в нем нужно предварительно просмотреть "в реальных условиях". Что вы меняете в DIV, зачем при этом его гонять туда сюда, я так и не понял.

Я уже реализовал, огромное спасибо!

баламут 03.02.2020 23:40

тут все такие профессоры ? - человек четко и явно попросил помощи
к примеру рассматриваем этот вопрос на примере игры .. строим корабль в космо стратегии .. списываются ресурс если не написать связку php=ajaх тупо жать до посинения ф5 и все ваши юзеры что бы постоянно видеть атаки противника , добычу реса прирост показтели списывания ресурсов за содержание зданий .. где не можете объяснить не умничайте .. тот кто начал тему и задал вопрос .. напиши в личку.. помогу решить вопрос.. тут походу люди далеки от обмен данными через аякс в реал тайм .. если просто как вы сказали ф5 тупо любой приличный более менее скрипт в инете можно надыбать.. но под конкретные задачи надо читать что такое аякс и обмен данных с сервером .. то что я наблюдаю по аяксу в данном плане в последнее время пишет школота дублируя друг друга не понимая сути вопроса .. даже что такое get запрос или post .. не говорю уже об универсальном методе отправки запроса
если делать сайт на аяксе то сорри тут нужно и динамическое обновление не только контента но и информации в реал-тайм .. в свое время я столкнулся с такой проблемой когда учился . тоже много умничали это отличие наших форумов от пиндосовских.. там быстрей ответ полчите учите англо и посещайте англо форумы быстрей научитесь .. у нас стараются набрав крохи знаний тупо отсылать в гугл.. хотя это тупо гугл хорошо работает только на англо языке по поиску в отличие от нашего яндекса где собрана помойка вот таких ответов

баламут 03.02.2020 23:51

https://yadi.sk/d/7Tnvb2S_3-cGJA на примере ролика ресурсы списываются при стройке без обновления страницы .. не так сложно это организовать особенно на простом сайте тут я помогаю такое делать клиенту на мунсе по игре обновление данных через аякс

а если такое не организовать то смысл загрузки через аякс теряется .. так как игрок должен видеть горячее обновление не нажимая ф5
а вам кто создал тему изучайте не только сторону ajax но и структуру php , tpl построение через

<form action="game.php?page=research" method="post" class="build_form"style="position: relative;top: -100px;">
<input type="hidden" name="cmd" value="insert">
<input type="hidden" name="tech" value="{$ID}">
<button type="submit" class="build_submit onlist">{$LNG.tech.{$ID}} </button>

</form> как вариант не будет работать.. а будет работать к примеру вот так
<a class="build_form" href="game.php?page=research#cmd=insert&tech={$ID} ">{$LNG.tech.{$ID}}</a> то есть через атрибут а изучите и это так как не которые запросы смотря как у вас организован скрипт работают только через ссылки атрибута <a href , или нужно писать свои правила в скрипте .. не забываем по сессиям есть один момент.. если есть конструктор.. а большинство новых движков, или старых уже на конструкторах сидят по обращению к базе данных.. то смысл писать сессии? они и так в нормальном движке уже есть по умолчанию.. нам лишь надо к обращению сделать связку

Malleys 04.02.2020 03:24

Цитата:

Сообщение от баламут
тут все такие профессоры ? - человек четко и явно попросил помощи

Очевидно, что не все такие! Просто laimas и может быть ещё кто-то до сих пор не познакомился с понятиями PWA и SPA. Я, например, одобрил для себя идею SPA ещё в 2007 году. (в виде «в зависимости от значения hash можно менять интерфейс»)

Цитата:

Сообщение от баламут
тут походу люди далеки от обмен данными через аякс в реал тайм

В играх для этого обычно используют сокет. Т. е. если говорить о HTML/JavaScript, то это класс WebSocket.

Цитата:

Сообщение от баламут
но под конкретные задачи надо читать что такое аякс и обмен данных с сервером .. то что я наблюдаю по аяксу в данном плане в последнее время пишет школота дублируя друг друга не понимая сути вопроса ..

Вы, судя по написанному, тоже не осилили этот вопрос! Есть «клиент», «сервер», «запрос», «ответ». А если вы ляпнете термин AJAX в неподходящем месте, то сразу почти всем понятно (не тем, кто знает только язык JavaScript или ещё хуже только jQuery вместо основ), что мы имеем дело с людьми, которые не могут отличить «модель клиент-сервер» от «языков JavaScript и XML»

Цитата:

Сообщение от баламут
у нас стараются набрав крохи знаний тупо отсылать в гугл..

У кого у нас? Если вы говорите, про людей в США, Великобритании и пр. где говорят на английском языке, то даже есть такой мем — just google it! Да! Just google it! Если вы говорите про жителей РФ и рядом, которые говорят на русском языке, то они могут вам предложить «погуглить». Здесь дело не в языке, а в образовании, в целях, которые хочет достичь человек. (У кого-то ведь Google заменяет мозги https://youtu.be/fU3S8_EEtFc?t=1742)

Для сравнения — Stack Overflow на русском и Stack Overflow [на английском]. Я не нашёл при беглом просмотре проблем описанных вами. Вы скорей по какой-то причине выдаёте желаемое за действительное!

Примеры Just google it!
https://youtu.be/-U4Hprs8QPs?t=1895
https://youtu.be/OZY55M7zwr0?t=364
https://youtu.be/yDYCf4ONh5M?t=994
https://youtu.be/op9I0wwrQpw?t=292

Цитата:

Сообщение от баламут
хотя это тупо гугл хорошо работает только на англо языке

Это ложь! Google достаточно хорошо ищет не только на английском языке.

Цитата:

Сообщение от баламут
отличие наших форумов от пиндосовских.. там быстрей ответ полчите учите англо и посещайте англо форумы быстрей научитесь

А вы сами уже изучили или только другим советуете? Например ваше «аякс» это на самом деле «эйджякс». (Если более точней при помощи IPA, то по русский вы говорите [ˈajəks] или [ɐˈjaks], однако по английский это слово произносится как [ˈeɪˈdʒæks]) Вот таблица для тех, кто думает, что правильно произносит некоторые слова связанные с веб-программированием — https://web-english.glitch.me/

ЕЩЁ Я упомянул про PWA и SPA, однако кто-то может вспомнить про SEO и отключенный JavaScript. Одно из решении — SSR


Часовой пояс GMT +3, время: 18:48.