Ajax обновление информации в бд
Здравствуйте! У меня есть html(div с информацией, чистый) и он загружен в бд и вывожу его на страницу с помощью php, и на этой же страницы я динамично через js меняю class в div и текст, и мне нужно чтобы по клику на кнопку эта информация перезаписалась без перезагрузки(на ajax) в бд с новыми изменениями(изменились class, текст) и без никаких потерь(старых), подскажите пожалуйста такой пример реализации или это реально вообще?
|
Вот что я накатал , но не выводит обновленную информацию почему-то...Я из бд вывел информацию в id test1, затем по клику в div с id test1 поменял class с одного на другой и нажал кнопку Сохранить( в надежде что запрос придет на ajax уже с обновленной информацией) но присылает старую информацию без обновления...Подскажите пожалуйста куда копать...
<input type="button" id="send" value="Сохранить"> Результат обновления - <div id="result"></div> <script> //при клике на кнопку $("#send").click( function() { //отправляем ( куда , что (имя / значение) , получаем ответ) $.post('/order.php', { name: $("#test1").val() } , function(data) { //ответ заносим в див $('#result').html(data); } ); } ); </script> <? if (isset($_POST['name'])) die($_POST['name']); ?> |
Цитата:
if (isset($_POST['name'])) die($_POST['name']); ? |
Цитата:
|
Пробую еще вот так:
<script>$(document).ready(function(){ $(".price").click(function(){ $.ajax({ type:"POST", url:"/order.php", data:$('#test1').html(), success: function(response){ $('#result').html(response); } }); }); }); </script> Результат обновления <div id="result"></div> Но все равно не присылает обновленный вариант div id=test1, подскажите пожалуйста как решить... И опять не пойму, если даже и получиться вывести обновленную информацию из div test1, как ее вытянуть из id result и загрузить в бд ?(( |
Вы не ответили на вопрос. Если код ранее показанный обрабатывающий асинхронный запрос клиента и есть родитель обновляемого div и кода клиентского, то почему код ответа расположен после html-кода этой страницы?
И вообще, это бесполезное занятие. Есть у вас элемент с классом А1, клиент меняет его на класс А2. Стиль элемента изменился, зачем же получать сам элемент назад? Сообщили серверу об изменениях, сохранил он их, открывая следующий раз страницу получите элемент уже с классом А2. |
То есть перезагрузка div на ajax, человек изменил информацию, нажал кнопку, информацию обновилась в бд и тут же старая информация пропала и появилась новая
|
Цитата:
|
Вроде бы вник как получить то что мне нужно, но почему-то post на ajax не выводиться <? echo $_POST['ides']; ?> , помогите найти проблему пожалуйста, по клику на price должен на ajax отправляться post запрос с информацией из div test1
<script>$(document).ready(function(){ $(".price").click(function(){ $.ajax({ type:"POST", url:"/order.php", data: {ides: $('#test1').html()}, success: function(response){ } }); }); }); </script> <? echo $_POST['ides']; ?> |
Если клиент вносит изменения для элемента на странице, то эти изменения уже произошли, зачем серверу возвращать это назад? Ему нужно сохранить изменения и вернуть результат сохранения - успешно или же произошла ошибка.
Если страница содержащая изменяемый элемент содержит и код обработки запроса клиента на изменение, то этот код должен быть расположен до любого вывода в браузер. Пример без базы, на сессии. Сохранить под любым именем и запустить. Изменить класс элемента. Нажать 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, зачем при этом его гонять туда сюда, я так и не понял. |
Цитата:
|
тут все такие профессоры ? - человек четко и явно попросил помощи
к примеру рассматриваем этот вопрос на примере игры .. строим корабль в космо стратегии .. списываются ресурс если не написать связку php=ajaх тупо жать до посинения ф5 и все ваши юзеры что бы постоянно видеть атаки противника , добычу реса прирост показтели списывания ресурсов за содержание зданий .. где не можете объяснить не умничайте .. тот кто начал тему и задал вопрос .. напиши в личку.. помогу решить вопрос.. тут походу люди далеки от обмен данными через аякс в реал тайм .. если просто как вы сказали ф5 тупо любой приличный более менее скрипт в инете можно надыбать.. но под конкретные задачи надо читать что такое аякс и обмен данных с сервером .. то что я наблюдаю по аяксу в данном плане в последнее время пишет школота дублируя друг друга не понимая сути вопроса .. даже что такое get запрос или post .. не говорю уже об универсальном методе отправки запроса если делать сайт на аяксе то сорри тут нужно и динамическое обновление не только контента но и информации в реал-тайм .. в свое время я столкнулся с такой проблемой когда учился . тоже много умничали это отличие наших форумов от пиндосовских.. там быстрей ответ полчите учите англо и посещайте англо форумы быстрей научитесь .. у нас стараются набрав крохи знаний тупо отсылать в гугл.. хотя это тупо гугл хорошо работает только на англо языке по поиску в отличие от нашего яндекса где собрана помойка вот таких ответов |
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 , или нужно писать свои правила в скрипте .. не забываем по сессиям есть один момент.. если есть конструктор.. а большинство новых движков, или старых уже на конструкторах сидят по обращению к базе данных.. то смысл писать сессии? они и так в нормальном движке уже есть по умолчанию.. нам лишь надо к обращению сделать связку |
Цитата:
Цитата:
Цитата:
Цитата:
Для сравнения — 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 Цитата:
Цитата:
ЕЩЁ Я упомянул про PWA и SPA, однако кто-то может вспомнить про SEO и отключенный JavaScript. Одно из решении — SSR |
Часовой пояс GMT +3, время: 10:21. |