Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.12.2014, 15:51
Аватар для Loromir
Новичок на форуме
Отправить личное сообщение для Loromir Посмотреть профиль Найти все сообщения от Loromir
 
Регистрация: 08.12.2014
Сообщений: 5

Вывод данных из БД в .js файл
На сайте есть калькулятор услуг, написан не мной на js(сам я пока не очень им владею =))

Суть в чем. Сейчас у меня есть 100500 строк кода с шапке сайта с этим функциями калькулятора, спросите почему? Потому что на тот момент когда добавлял в админку возможность редактировать эти тарифы на кальк, сделал это через пхп(берется массив из БД и форичем вставляет значения в функции скрипта).

Хочу разделить так сказать ХТМЛ и Скрипты.
Понемногу изучал, делал что мог.

Как это вижу:
Есть js файл с функциями который крепится в шапку. В файле функции и аякс запрос к БД (файл с скриптом=>пхп файл с запросом=>данные=>файл с скриптом) и как нибудь также форичем положить по полочкам...
Читал, вроде это както надо делать через json, но не допетрил...
БД выглядит примерно так
id_name_price1_price2_show/hide
1
2
3
....

Заранее благодарю за советы комментарии)
Ответить с цитированием
  #2 (permalink)  
Старый 09.12.2014, 14:27
Аспирант
Отправить личное сообщение для myshara Посмотреть профиль Найти все сообщения от myshara
 
Регистрация: 25.06.2012
Сообщений: 37

Здравствуйте, Loromir.

Это выглядит примерно так:

$.ajax
            ({  
                url: "make_json.php",  
                cache: false,  
                success: function(getJson)
                {  
                  //что то делаем с getJson  
                }  
            });


теперь make_json.php:
<?php
...коннект к БД и запрос
$resultDB= mysql_query($queryDB);
$json=array();
while ($r = mysql_fetch_assoc($resultDB)) 
{
    $json[]=array($r[field1],....,$r[fieldN]);
};
$json=json_encode($json);
echo $json
?>
Ответить с цитированием
  #3 (permalink)  
Старый 16.12.2014, 13:04
Аватар для Loromir
Новичок на форуме
Отправить личное сообщение для Loromir Посмотреть профиль Найти все сообщения от Loromir
 
Регистрация: 08.12.2014
Сообщений: 5

только добрались руки снова к этому вопросу.
первый файл(он же индекс)
<script type="text/javascript" src="test.ajax_request.js"></script>
<script>
$(document).ready(function(e) {
    test_ajax_request();
});
</script>
<div id="result_div_id_calc">
</div>

_
2ой файл(он же скрипты)
function test_ajax_request(){
	var url_zapros='test.ajax_function.php';
	var result_div_id_calc=$('#result_div_id_calc');

	$.ajax({
		url:		url_zapros,
		cache:		false,
		type:		"POST",
		dataType:	"json",
		success:	function(getJson){
						res_div_id_calc.text(getJson);
					},//потом эти данные должны будут уйти в функцию switch(){}
		error:		function(getJson){
						result_div_id_calc.text('error: '+getJson);
					}
	});
}

_
3ий файл пхп функции
//подключение к мускулу
//подключение к бд
function test_arr_calc(){
	$sql="SELECT * FROM ajax_test";
	$result=db2array(mysql_query($sql)) or die("Ошибка: ".mysql_error());//db2array функция которая делает "массив в массиве, при выборке полной таблице"

	$json=json_encode($result);
	echo $json;
}
//результат [{"id":"1","value_1":"55555555","value_2":"11111","value_3":"222222"},...]

test_arr_calc();


результат в диве:
error: [object Object]


Поправьте меня пожалуйста, где накосячил?
Ответить с цитированием
  #4 (permalink)  
Старый 16.12.2014, 15:13
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Loromir, пути проверь и result_div_id_calc исправь и getJson это объект.
Ответить с цитированием
  #5 (permalink)  
Старый 16.12.2014, 17:18
Аватар для Loromir
Новичок на форуме
Отправить личное сообщение для Loromir Посмотреть профиль Найти все сообщения от Loromir
 
Регистрация: 08.12.2014
Сообщений: 5

Rise, пути в порядке, "название подправил", пока без изменений =(
как правильно обработать getJson? пробовал $.makeArray(getJson) тоже не получилось.
Ответить с цитированием
  #6 (permalink)  
Старый 16.12.2014, 18:44
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Loromir, посмотри к консоли что за ошибку возвращает.
Ответить с цитированием
  #7 (permalink)  
Старый 17.12.2014, 15:53
Аватар для Loromir
Новичок на форуме
Отправить личное сообщение для Loromir Посмотреть профиль Найти все сообщения от Loromir
 
Регистрация: 08.12.2014
Сообщений: 5

Rise, посмотрел логи, сразу нашел ошибку) спасиб)
получился многомерный массив
разобрал его таким способом(внутри success)
$.ajax({
		url:		url_zapros,
		cache:		false,
		dataType:	'json',
		success:	function(getJson){
						var calc_table = '';
						for (var n in getJson){
							var json=getJson[n];
							calc_table+=json.id+'<br>';
							calc_table+=json.value_1+'<br>';
							calc_table+=json.value_2+'<br>';
							calc_table+=json.value_3+'<br><hr>';
						}
						result_div_id_calc.html(calc_table);
					},
		error:		function(getJson){
						result_div_id_calc.text('error: '+getJson);
					}
	});

нужно, вне аякса, чуть ниже так сказать вывести эти данные таким вот образом:
case   "<?=$item['class']?>" : var tarif = "<?=$item['tarif_spb']?>";break;

только само собой вместо пхп это будут js данные, это реально?
попробовал "return getJson" не получилось

Последний раз редактировалось Loromir, 18.12.2014 в 15:48.
Ответить с цитированием
  #8 (permalink)  
Старый 18.12.2014, 17:38
Аватар для Loromir
Новичок на форуме
Отправить личное сообщение для Loromir Посмотреть профиль Найти все сообщения от Loromir
 
Регистрация: 08.12.2014
Сообщений: 5

оказалось немного проще сделал:
function xxx(){
      return $.ajax({
      }).responseText;//если без респонс текст отправить, result получается объектом, но опять таки почему то не разбивается и ошибок не выдает
}

var result=xxx();
//result получает строку в виде массива но с помощью
                        var calc_table = '';
                        for (var n in result){
                            var json=result[n];
                            calc_table+=json.id+'<br>';
                            calc_table+=json.value_1+'<br>';
                            calc_table+=json.value_2+'<br>';
                            calc_table+=json.value_3+'<br><hr>';
                        }
                        $('#result_div_id_calc').html(calc_table);
//не получается разбит(ибо строка как я понял) =( пойду гуглить дальше, от совета не откажусь)

Последний раз редактировалось Loromir, 19.12.2014 в 14:53. Причина: неправильно написал, изменил
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простейшая отправка данных на сервер и вывод MBmusic AJAX и COMET 12 23.09.2013 12:35
отправка данных из формы и вывод полученных данных sxe jQuery 2 21.05.2013 00:34
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00
Добавление данных в xml файл Arka1m Элементы интерфейса 9 18.11.2011 10:44
не прикрепляется файл .js 4aineg Элементы интерфейса 10 22.03.2010 20:29