![]() |
Обновление select без перезагрузки страницы Здравствуйте. Подскажите что дописать на js что бы обновление данных из php происходило без перезагрузки страницы. Читал что можно использовать ajax, но как его прикрутить незнаю. Сам исходник: <? $c_gd_pr= 11; $c_gd_pok= 22; $c_ge_pr= 33; $c_ge_pok= 44; if ($_POST['br'] == 'glav') $c_gd_pr= 11; $c_gd_pok= 22; $c_ge_pr= 33; $c_ge_pok= 44; ** if ($_POST['br'] == 'zap') $c_gd_pr= 55; $c_gd_pok= 66; $c_ge_pr= 77; $c_ge_pok= 88; ** if ($_POST['br'] == 'gor') $c_gd_pr= 99; $c_gd_pok= 54; $c_ge_pr= 67; $c_ge_pok= 42; ** ?> <form name="f_br" accept-charset="UTF-8" action="" method="post"> <select name="br" onchange="this.form.submit();"> <option value= "glav" selected="selected" <? if ($_SESSION['br'] == 'glav') {echo "selected='selected'";**?>>1</option> <option value= "zap"<? if ($_SESSION['br'] == 'zap') {echo "selected='selected'";**?>>2</option> <option value= "gor"<? if ($_SESSION['br'] == 'gor') {echo "selected='selected'";**?>>3</option> </select> </form> |
1. Делаешь отдельную пхп-страницу, которая будет тебе возвращать данные для JS лучше JSON. Гугли PHP JSON 2. Станица с отображением данных шлет AJAX на первую, парсит и обновляется. Почитать про JQuery AJAX. |
Отправляешь ajax на какую-нибудь станицу, например getlist.php. На странице getlist.php формируешь массив и делаешь json_encode. Получает ответ через тот же ajax делаешь parseJSON и делаешь с данными все что тебе нужно. |
Спасибо, попробую. |
Можно и без json, допскрипт сразу генерит html, который засовывается в div. Jquery сильно экономит силы. |
доп скрипт может и генерит, только я не знаю что это за скрипт) |
может кто подскажет, как реализовать: if ($_POST['br'] == 'glav') $c_gd_pr= 11; $c_gd_pok= 22; $c_ge_pr= 33; $c_ge_pok= 44; ** на js? |
6-woo > Судя по коду, вы просто меняете значение каких то переменных в зависимости от селекта и шо вы хотите в итоге? |
это вывод посредством селекта цифр на сайте. эти цифры будут редактироваться пользователем, на этом же сайте только с правами редактора. Хочу что бы ему было понятно где в коде поменять цифры. Проблема сейчас только в том что обновление цифр ведет к обновлению страницы. Знаю что при помощи php реализовать по другому нельзя. Но с js у меня затык... |
как я понял нужно $json_string='**"glav":["33","44","55","66"]** '; $obj=json_decode($json_string); и вывести в нужных местах echo $obj->glav[0];echo $obj->glav[1 ]; и т.п но мне нужны группы при смене в селекте. Наверно нужно обернуть в функцию и в value в селекте вбить имя функции... я хоть немного в теме?) |
там не звездочки, чета сайт запорол знаки |
В смысле в коде? Может тебе тогда и пхп не нужен? Например читать цифры из CSV-файла на сервере JS и формировать селект. |
Из закрома <script src="https://code.jquery.com/jquery-2.1.0.min.js" type="text/javascript"></script> <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-csv/0.71/jquery.csv-0.71.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() ** $.ajax(** type: "GET", url: "data.csv", dataType: "text", success: function(data) {processData(data);** **); function processData(allText) ** var mySelect = $('#my-select'); var dataFile = $.csv.toArrays(allText, {separator:";"**); for (var i = 0; i < dataFile.length; i++) ** var line = $('<tr></tr>'); var lineNum = i + 1; $('<option data-row-num="'+i +'" data-field-0="'+dataFile[i][0] +'" data-field-1="'+dataFile[i][1] +'" data-field-2="'+dataFile[i][2] +'" data-field-3="'+dataFile[i][3]+'">' +dataFile[i][0]+'</option>').appendTo(mySelect); ** ** </script> |
** - это открывающаяся фигурная скобка И перед последней фигурной,т.е. после FOR, надо повесить функцию на изменении селекта: mySelect.change(function()** //ТВОРИ ДОБРО ЗДЕСЬ!!! **); |
Да.. А я помню, лет 6-7 назад, нагуглил пример с первого раза) |
спасибо) пхп да, не обязателен просто в нем я сообразил как написать, а в js нет. я сегодня вечером попробую применить а пользователь сможет в этом файле изменять значения? |
мб не так эстетично, но можно на одной странице все делать...т.е. не вынося в файл |
Тема закрыта. |
Текущее время: 20:06. Часовой пояс GMT +3. |