К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Обновление select без перезагрузки страницы

Гость
0 - 27.08.2014 - 14:13
Здравствуйте.
Подскажите что дописать на 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 - 27.08.2014 - 14:47
1. Делаешь отдельную пхп-страницу, которая будет тебе возвращать данные для JS лучше JSON. Гугли PHP JSON
2. Станица с отображением данных шлет AJAX на первую, парсит и обновляется. Почитать про JQuery AJAX.
Гость
2 - 27.08.2014 - 14:49
Отправляешь ajax на какую-нибудь станицу, например getlist.php. На странице getlist.php формируешь массив и делаешь json_encode. Получает ответ через тот же ajax делаешь parseJSON и делаешь с данными все что тебе нужно.
Гость
3 - 27.08.2014 - 16:40
Спасибо, попробую.
Гость
4 - 27.08.2014 - 16:52
Можно и без json, допскрипт сразу генерит html, который засовывается в div. Jquery сильно экономит силы.
Гость
5 - 27.08.2014 - 17:02
доп скрипт может и генерит, только я не знаю что это за скрипт)
Гость
6 - 27.08.2014 - 20:22
может кто подскажет, как реализовать: if ($_POST['br'] == 'glav')
$c_gd_pr= 11;
$c_gd_pok= 22;
$c_ge_pr= 33;
$c_ge_pok= 44;
**
на js?
Гость
7 - 27.08.2014 - 22:52
6-woo >
Судя по коду, вы просто меняете значение каких то переменных в зависимости от селекта и шо вы хотите в итоге?
Гость
8 - 27.08.2014 - 23:05
это вывод посредством селекта цифр на сайте.
эти цифры будут редактироваться пользователем, на этом же сайте только с правами редактора.
Хочу что бы ему было понятно где в коде поменять цифры.
Проблема сейчас только в том что обновление цифр ведет к обновлению страницы.
Знаю что при помощи php реализовать по другому нельзя.
Но с js у меня затык...
Гость
9 - 27.08.2014 - 23:10
как я понял нужно
$json_string='**"glav":["33","44","55","66"]** ';
$obj=json_decode($json_string);
и вывести в нужных местах echo $obj->glav[0];echo $obj->glav[1 ]; и т.п
но мне нужны группы при смене в селекте.
Наверно нужно обернуть в функцию и в value в селекте вбить имя функции...
я хоть немного в теме?)
Гость
10 - 27.08.2014 - 23:12
там не звездочки, чета сайт запорол знаки
Гость
11 - 28.08.2014 - 00:15
В смысле в коде? Может тебе тогда и пхп не нужен?
Например читать цифры из CSV-файла на сервере JS и формировать селект.
Гость
12 - 28.08.2014 - 00:25
Из закрома

<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>
Гость
13 - 28.08.2014 - 00:36
** - это открывающаяся фигурная скобка

И перед последней фигурной,т.е. после FOR, надо повесить функцию на изменении селекта:

mySelect.change(function()**
//ТВОРИ ДОБРО ЗДЕСЬ!!!
**);
Гость
14 - 28.08.2014 - 09:21
Да.. А я помню, лет 6-7 назад, нагуглил пример с первого раза)
Гость
15 - 28.08.2014 - 15:22
спасибо)
пхп да, не обязателен
просто в нем я сообразил как написать, а в js нет.
я сегодня вечером попробую применить
а пользователь сможет в этом файле изменять значения?
Гость
16 - 28.08.2014 - 15:24
мб не так эстетично, но можно на одной странице все делать...т.е. не вынося в файл
Гость
17 - 29.08.2014 - 09:23
Тема закрыта.


К списку вопросов






Copyright ©, Все права защищены