Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2015, 09:41   #1
Bender1000
Пользователь
 
Регистрация: 20.05.2013
Сообщений: 37
Вопрос Unexpected identifier или "данные есть, а php считает, что нет"

Довольно долго уже пытаюсь решить проблему. Есть база данных, куда заносится информация о заказчике и многом другом. И есть панель администратора, в которой все эти данные должны отображаться.

В частности, с помощью этого кода:
PHP код:
$sql 'SELECT * from orders ORDER BY id DESC;';
                    
$orders database_select($sql);
                    if (
count($orders)==0) {
                        echo(
'<empty>');
                    } else {
                        
$js '';
                        foreach(
$orders as $order) {
                            
$state '';
                            if (
$order['state']==0$state='не оплачено';
                            if (
$order['state']==1$state='оплачено';
                            if (
$order['state']==2$state='отказ';
                                                        echo(
'<div class="page_order">#'.$order['id'].'<div class="page_order_state page_order_state_color'.$order['state'].'">'.$state.'</div></div>');
                                                        
                            
$people json_decode(base64_decode($order['people']),true);
                            
$s '[';
                            foreach (
$people as $guy) {
                                
$s .= '{';
                                foreach(
$guy as $key => $value){
                                    
$s .= $key ': "' $value '",';
                                }
                                
$s .= '},';
                            }
                            
$people $s ']';

                            
$payer json_decode(base64_decode($order['payer']),true);
                                                        
$i '{';
                            foreach(
$payer as $key => $value){
                                
$i .= $key ': "' $value '",';
                            }
                            
$payer $i '}';
                                                        

                            
$js .= 'AddOrder('.$order['id'].','.$people.','.$payer.','.$order['price'].','.$order['time'].','.$order['state'].',"'.$order['akey'].'","'.$order['ref'].'");';

                        }
                        echo(
'<script type="text/javascript">'.$js.'</script>');
                    } 
При таком коде нет данных ни о плательщике, ни о других людях. JS выводит на это Unexpected identifier. При этом рассматривая строку, на которую он ссылается, я вижу нужны мне данные, которые я хочу видеть отображенными в панели. Вот кусочек строки, показывающий один из множества отображающихся в этой строке заказов:

Код HTML:
AddOrder(359,[{lastname: "Никипелов",firstname: "Евгений",patronymic: "Сергеевич",
birthday: "18.01.1983",policy_id: "223",price: "400",adult: "1",},],
{lastname: "Никипелов",firstname: "Евгений",patronymic: "Сергеевич",
birthday: "18.01.1983",email: "e_nikipelov@mail.ru",phone: "+7 (905) 976-80-00",
comail: "Получить Почтой России в течение 5 дней",address: "660001, г. Красноярск, ул. Копылова, 17, квартира 28",}
,400,1427891415,1,"Yn4UAs5lYi","");
А вот если закомментировать этот, например, код:
PHP код:
foreach($payer as $key => $value){
                                
$i .= $key ': "' $value '",';
                            } 
, то появляется информация о людях, ну и вообще, панель просыпается и начинает функционировать, но, само собой, нет информации о $payer. А она ведь есть )))

Вот она:
Код HTML:
{lastname: "Никипелов",firstname: "Евгений",patronymic: "Сергеевич",
birthday: "18.01.1983",email: "e_nikipelov@mail.ru",phone: "+7 (905) 976-80-00",
comail: "Получить Почтой России в течение 5 дней",address: "660001, г. Красноярск, ул. Копылова, 17, квартира 28",}
Подскажите, в чем может быть проблема? Как перевести эту информацию с помощью foreach в панель администратора?
10000 часов програмирования - https://vk.com/tth.ikarev
Bender1000 вне форума Ответить с цитированием
Старый 19.04.2015, 10:36   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Синтаксическая ошибка, скорее всего.
Например, я не уверен, что такая конструкция приемлема:
Цитата:
Сообщение от Bender1000 Посмотреть сообщение
AddOrder(359,[{lastname: "Никипелов",firstname: "Евгений",patronymic: "Сергеевич",
birthday: "18.01.1983",policy_id: "223",price: "400",adult: "1",},],
{lastname: "Никипелов",firstname: "Евгений",patronymic: "Сергеевич",
birthday: "18.01.1983",email: "e_nikipelov@mail.ru",phone: "+7 (905) 976-80-00",
comail: "Получить Почтой России в течение 5 дней",address: "660001, г. Красноярск, ул. Копылова, 17, квартира 28",}
,400,1427891415,1,"Yn4UAs5lYi","");
Непонятен смысл некоторых манипуляций с данными: зачем декодировать json – чтобы потом из этих данных кривым способом опять же слепить json?
Andkorol вне форума Ответить с цитированием
Старый 19.04.2015, 11:16   #3
Bender1000
Пользователь
 
Регистрация: 20.05.2013
Сообщений: 37
По умолчанию

Попробовал заменить все запятые на пробелы - особой роли не сыграло, к сожалению ((
10000 часов програмирования - https://vk.com/tth.ikarev
Bender1000 вне форума Ответить с цитированием
Старый 19.04.2015, 11:33   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Зачем все-то запятые заменять?
Достаточно было попробовать удалить указанные две.

Хотелось бы увидеть код js-функции AddOrder() – чтоб понять, какой формат данных должен быть использован для её аргументов.
Так же хотелось бы понять, почему бы просто не выводить информацию из БД напрямую в HTML – зачем для этого нужно многократно дёргать javascript, получая весь этот гемор при жонглировании данными «из-в» json?

Последний раз редактировалось Andkorol; 19.04.2015 в 12:03.
Andkorol вне форума Ответить с цитированием
Старый 19.04.2015, 11:50   #5
Bender1000
Пользователь
 
Регистрация: 20.05.2013
Сообщений: 37
По умолчанию

Прошу прощения, конечно, не все запятые я поменял, а только вот эти две. Вот код addOrder()

Код:
function AddOrder(id,people,payer,price,time,state,key,ref) {
	orders.push({
		id: id,
		people: people,
		payer: payer,
		price: price,
		time: time,
		state: state,
		key: key,
		ref: ref,
	});
}
10000 часов програмирования - https://vk.com/tth.ikarev
Bender1000 вне форума Ответить с цитированием
Старый 19.04.2015, 11:59   #6
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

ну и смысл этой функции ?
да и хотелось бы все-таки услышать ответы про жонглирование
lomastr_ вне форума Ответить с цитированием
Старый 19.04.2015, 13:40   #7
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Цитата:
Сообщение от lomastr_ Посмотреть сообщение
ну и смысл этой функции ?
да и хотелось бы все-таки услышать ответы про жонглирование
как это вообще работает, мне было бы проще вам с нуля написать, чем выискивать ошибку.
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 20.04.2015, 03:07   #8
Bender1000
Пользователь
 
Регистрация: 20.05.2013
Сообщений: 37
Радость

Короче, проблема была в неэкранированных кавычках. Пользователи могли вводить свои данные, и само собой, однажды там появились кавычки. Решено было следующим образом:
PHP код:
foreach($payer as $key => $value){
    
$value str_replace('"''\"'$value);
    
$i .= $key ': "' $value '",';

10000 часов програмирования - https://vk.com/tth.ikarev
Bender1000 вне форума Ответить с цитированием
Старый 20.04.2015, 06:29   #9
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

тс знает толк в извращениях. ух, шалунишка )
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Unexpected end of input" и "Unexpected token <" 555MasteR555 JavaScript, Ajax 1 22.02.2015 16:37
Что происходит на странице с такие JS: <script src="cmp.php?complete&amp;" id="las..." ...>? TwiX JavaScript, Ajax 0 05.02.2010 17:38
Microsoft eMbedded Visual C++ или "есть ли альтернатива?" Хрюн моржов Visual C++ 10 08.10.2009 00:50
PHP(или другой язык): Получить все пары "имя" -> "значение" переданные методом POST KingOfNothing PHP 4 12.04.2009 14:06
Нет в русском языке "ложит", есть - "кладет". mihali4 Свободное общение 25 01.04.2008 11:19