Javascript.RU

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

[Help] PHP массив в javascript
Привет всем!
Помогите решить проблему,гугл не помогает(второй день хожу да около,а сообразить не хватает знаний)

CMS Опенкарт,из контроллера в шаблон приходит переменная(массив),нужно этот массив разобрать в javascript(е),а именно в функции:
$('#button-refresh').on('click', function() {
	$.ajax({
		url: $('select[name=\'store\'] option:selected').val() + 'index.php?route=api/cart/products&token=' + token,
		dataType: 'json',
		crossDomain: true,
		success: function(json) {
			$('.alert-danger, .text-danger').remove();

			// Check for errors
			if (json['error']) {
				if (json['error']['warning']) {
					$('#content > .container-fluid').prepend('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> ' + json['error']['warning'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>');
				}

				if (json['error']['stock']) {
					$('#content > .container-fluid').prepend('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> ' + json['error']['stock'] + '</div>');
				}

				if (json['error']['minimum']) {
					for (i in json['error']['minimum']) {
						$('#content > .container-fluid').prepend('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> ' + json['error']['minimum'][i] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>');
					}
				}
			}

			var shipping = false;

			html = '';


if (json['products'].length) {
				for (i = 0; i < json['products'].length; i++) {
					product = json['products'][i];

					html += '<tr>';
					html += '  <td class="text-left">' + product['name'] + ' ' + (!product['stock'] ? '<span class="text-danger">***</span>' : '') + '<br />';
					html += '  <input type="hidden" name="product[' + i + '][product_id]" value="' + product['product_id'] + '" />';

					if (product['option']) {
						for (j = 0; j < product['option'].length; j++) {
							option = product['option'][j];

							html += '  - <small>' + option['name'] + ': ' + option['value'] + '</small><br />';

							if (option['type'] == 'select' || option['type'] == 'radio' || option['type'] == 'image') {
								html += '<input type="hidden" name="product[' + i + '][option][' + option['product_option_id'] + ']" value="' + option['product_option_value_id'] + '" />';
							}

							if (option['type'] == 'checkbox') {
								html += '<input type="hidden" name="product[' + i + '][option][' + option['product_option_id'] + '][]" value="' + option['product_option_value_id'] + '" />';
							}

							if (option['type'] == 'text' || option['type'] == 'textarea' || option['type'] == 'file' || option['type'] == 'date' || option['type'] == 'datetime' || option['type'] == 'time') {
								html += '<input type="hidden" name="product[' + i + '][option][' + option['product_option_id'] + ']" value="' + option['value'] + '" />';
							}
						}
					}

					html += '</td>';
					
	>>>>>>>>>>>>>	html += '  <td class="text-left">ЗДЕСЬ НУЖНО РАЗОБРАТЬ МАССИВ ИЗ PHP</td>';
					html += '  <td class="text-left">' + product['model'] + '</td>';
					html += '  <td class="text-right"><div class="input-group btn-block" style="max-width: 200px;"><input type="text" name="product[' + i + '][quantity]" value="' + product['quantity'] + '" class="form-control" /><span class="input-group-btn"><button type="button" data-toggle="tooltip" title="<?php echo $button_refresh; ?>" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary"><i class="fa fa-refresh"></i></button></span></div></td>';
                    html += '  <td class="text-right">' + product['price'] + '</td>';
					html += '  <td class="text-right">' + product['total'] + '</td>';
					html += '  <td class="text-center" style="width: 3px;"><button type="button" value="' + product['cart_id'] + '" data-toggle="tooltip" title="<?php echo $button_remove; ?>" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-danger"><i class="fa fa-minus-circle"></i></button></td>';
					html += '</tr>';

					if (product['shipping'] != 0) {
						shipping = true;
					}
				}
			}.........................................

Последний раз редактировалось MilkeyWay, 07.07.2016 в 21:40.
Ответить с цитированием
  #2 (permalink)  
Старый 08.07.2016, 12:39
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Надо перевести в жабу, а там уже разбирать.

<td class="text-left"><script>var=massiv_v_js='.json_encode($massiv_is_php).';</script></td>';
Ответить с цитированием
  #3 (permalink)  
Старый 08.07.2016, 18:04
Новичок на форуме
Отправить личное сообщение для MilkeyWay Посмотреть профиль Найти все сообщения от MilkeyWay
 
Регистрация: 03.04.2015
Сообщений: 5

Сообщение от warren buffet Посмотреть сообщение
Надо перевести в жабу, а там уже разбирать.

<td class="text-left"><script>var=massiv_v_js='.json_encode($massiv_is_php).';</script></td>';
Спасибо!

сделал так:
<?php if (isset($js)) { ?>;
					var s = <?php echo json_encode($js); ?>;
					
					if (s.length) {
							html += '<span class="sid">SID' + s[i]['sid'] + ': </span>';
							html += s[i]['key'];
					}
					<?php } ?>


вроде работает,но терзают сомнения,правильно ли?
Ответить с цитированием
  #4 (permalink)  
Старый 08.07.2016, 19:09
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Это надо гнилой контекст опенкарты знать. Ну, вообще-то так не делается, поскольку из того же массива в пехепе можно нарендерить какого хочешь хтмля, но если в жопенкарте по-другому нельзя, то значит можно. ))) Скрипты и стили могут быть где угодно и когда хочешь. Давно уже всем пофигу где тег скрипт и стайл находится.

ЗЫ Кстати в эти теги ушлый народ запихивает хтмл как в место, где его можно хранить невидимо, ну, типа output buffer в PHP.

Последний раз редактировалось warren buffet, 08.07.2016 в 19:14.
Ответить с цитированием
  #5 (permalink)  
Старый 09.07.2016, 03:11
Новичок на форуме
Отправить личное сообщение для MilkeyWay Посмотреть профиль Найти все сообщения от MilkeyWay
 
Регистрация: 03.04.2015
Сообщений: 5

Сообщение от warren buffet Посмотреть сообщение
Это надо гнилой контекст опенкарты знать. Ну, вообще-то так не делается, поскольку из того же массива в пехепе можно нарендерить какого хочешь хтмля, но если в жопенкарте по-другому нельзя, то значит можно. ))) Скрипты и стили могут быть где угодно и когда хочешь. Давно уже всем пофигу где тег скрипт и стайл находится.

ЗЫ Кстати в эти теги ушлый народ запихивает хтмл как в место, где его можно хранить невидимо, ну, типа output buffer в PHP.
а по теме?)) без нравоучений про жопенкарт)
Ответить с цитированием
  #6 (permalink)  
Старый 09.07.2016, 06:41
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Надо перевести в жабу
Куда-куда перевести?

Цитата:
Давно уже всем пофигу где тег скрипт и стайл находится
Ну вот уж не пофигу.
Обычно стили включают в хед-секцию, а скрипт - в самый конец тела перед закрывающим тегом. Ну либо тоже в хед секцию с тегом deferred, но это только для новых браузеров.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL запрос на языке JavaScript (не PHP) U_M0KRH Серверные языки и технологии 3 31.07.2015 05:06
Формирование html кода средствами php или javascript? rosolovsky AJAX и COMET 2 16.06.2015 10:18
JavaScript - Websockets - PHP Camad AJAX и COMET 8 21.09.2014 01:20
JavaScript и PHP. Очередность запросов. Urukhay Общие вопросы Javascript 5 04.07.2014 22:00
Связь между страницами с javascript и php ... и обратно okrip25 AJAX и COMET 7 09.01.2012 14:43