Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   json encode что не так (https://javascript.ru/forum/dom-window/42374-json-encode-chto-ne-tak.html)

imediasun1 23.10.2013 21:19

json encode что не так
 
В чем тут проблема может быть, в консоли
ReferenceError: \u0441onsole is not defined
console.log(html);
function SendFile() {
	var obj=$('#id_article').val();
	   //отправка файла на сервер
	    $$f({
			
	        formid:'test_form',//id формы
	        url:'/functions/change_photo1',//адрес на серверный скрипт который будет принимать файл
	        onstart:function () {//действие при начале загрузки файла
	            $$('result','начинаю отправку файла');//в элемент с id="result" выводим результат
	        },
	        onsend:function (html) {//действие по окончании загрузки файла
	            $$('result',$$('result').innerHTML+'<br />файл успешно загружен');//в элемент с id="result" выводим результат
				var res = JSON.parse(html);
				alert(res);
				alert(html);
				сonsole.log(html);
				/* location.reload(); */
	        }
	    });
	
	}

$image_info = GetImageSize("./works/000.JPG");
		$image_info=array('0'=>'22','1'=>'77');
		$string=print_r($image_info, true);
		echo json_encode ($image_info);

imediasun1 23.10.2013 21:20

и как правильно в данном случае получит распечатку массива пхп в браузере

рони 23.10.2013 22:14

imediasun1,
русская с ==\u0441

imediasun1 23.10.2013 22:21

спасибо,а это что такое,SyntaxError: JSON.parse: unexpected character
var res = JSON.parse(html);

рони 23.10.2013 23:47

Цитата:

Сообщение от imediasun1
SyntaxError: JSON.parse: unexpected character

JSON какойто неJSONистый из базы данных получен и на форумы php вам лучше обратится.

danik.js 24.10.2013 06:18

Цитата:

Сообщение от рони
айсон

ISON?

BETEPAH 24.10.2013 08:59

Цитата:

Сообщение от danik.js
ISON?

iSon

imediasun1 24.10.2013 13:59

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

imediasun1 24.10.2013 14:25

Я из браузера запускаю файл в обработчик
function SendFile() {
	var obj=$('#id_article').val();
	   //отправка файла на сервер
	    $$f({
			
	        formid:'test_form',//id формы
	        url:'/functions/change_photo1',
			//адрес на серверный скрипт который будет принимать файл
	        onstart:function () {//действие при начале загрузки файла
	            $$('result','начинаю отправку файла');//в элемент с id="result" выводим результат
	        },
	        onsend:function () {//действие по окончании загрузки файла
	            $$('result',$$('result').innerHTML+'<br />файл успешно загружен');//в элемент с id="result" выводим результат
				
				/* location.reload(); */
	        }
	    });
	
	}

В ПХП обрабатывается файл и хочу получить назад данные об этом файле
if($_FILES['upload_file']['size']>0) {

if (copy($_FILES['upload_file']['tmp_name'], $uploadfile))
		{
		$uploaddir = './works/';
		$uploadfile = $uploaddir.basename($_FILES['upload_file']['name']);
		$image_info = GetImageSize("./works/000.JPG");
		
		$string=print_r($image_info, true);
		
		echo ' <script type="text/javascript">
		var elm=parent.window.document.getElementById("result");
		elm.innerHTML=elm.innerHTML+"'.preg_replace('/\n/m', "\\\n",$string).'";
		</script>';
                }
                }

почему то ответ в консоли такой
SyntaxError: missing ; before statement
[3] => width="640" height="480"\
а если просто отправлять строкой массив
$image_info=array('0'=>'22','1'=>'77'); [/html]
то ответ проходит нормально, помогите понять в чем тут дело

danik.js 24.10.2013 14:26

Причем тут примеры, у тебя же есть пример, ты сам его запостил. Дело только в его корректности. Вот если не ошибаюсь пять минут назад у тебя в php коде было print_r(..), что ломало бы JSON естественно. Щас ты подправил вроде код. Изучай средства отладки в браузере и станет намного легче, ибо сможешь визуализировать все происходящее под капотом (например смотри что возвращает сервер на запрос во вкладке Network (Сеть))

BETEPAH 24.10.2013 14:29

Цитата:

Сообщение от рони
на форумы php вам лучше обратится

А если вам нет особой нужды разбираться с php, то вот, можно на кошках потренироваться ради интереса - http://jsonplaceholder.typicode.com/

danik.js 24.10.2013 14:30

Что это за хрень? Зачем в ответ на загрузку файла выдавать скрипт? че за фигня? Про функции не слышал? Функцию можно заранее объявить, а потом вызвать когда нужно. Так что не обязательно если тебе нужно что-то выполнить, создавать новый скрипт.

imediasun1 24.10.2013 14:31

так я смотрю в консоль но понять не могу там что кавычки какие то надо экранировать, если да то как это сделать

imediasun1 24.10.2013 14:33

напишите пожалуйста как нужно сделать кодом

danik.js 24.10.2013 14:34

Цитата:

Сообщение от imediasun1
напишите пожалуйста как нужно сделать кодом

Формализуй задачу. И поясни какие именно проблемы с первым вариантом (который в первом посте).

imediasun1 24.10.2013 14:42

задача сформулированна в 9 посте

imediasun1 24.10.2013 14:46

я думаю вы бы отправляли ответ подругому, но я не знаю как правильно, а задача в том чтобы отправит файл без перезагрузки на сервер записать в папку файл (там я потом миниатюру создаю) и получить назад в браузер информацию о ширене и высоте файла, почему на сервере инфо о файле, потому что ресайз будет делаться в зависимости от ширины

danik.js 24.10.2013 15:10

Последний раз спрашиваю: где код функции $$f ?

imediasun1 24.10.2013 15:14

$$f({
			
	        formid:'test_form',//id формы
	        url:'/functions/change_photo1',
			//адрес на серверный скрипт который будет принимать файл
	        onstart:function () {//действие при начале загрузки файла
	            $$('result','начинаю отправку файла');//в элемент с id="result" выводим результат
	        },
	        onsend:function () {//действие по окончании загрузки файла
	         $$('result',$$('result').innerHTML+'<br />файл успешно загружен');//в элемент с id="result" выводим результат
				
				
	        }
	    });

danik.js 24.10.2013 15:49

Это код вызова функции. Где определение самой функции?

imediasun1 24.10.2013 15:57

$('#btn_photo_1').change(function(){

SendFile();

	function SendFile() {
	var obj=$('#id_article').val();
	   //отправка файла на сервер
	    $$f({
			
	        formid:'test_form',//id формы
	        url:'/functions/change_photo1',
			//адрес на серверный скрипт который будет принимать файл
	        onstart:function () {//действие при начале загрузки файла
	            $$('result','начинаю отправку файла');//в элемент с id="result" выводим результат
	        },
	        onsend:function () {//действие по окончании загрузки файла
	            $$('result',$$('result').innerHTML+'<br />файл успешно загружен');//в элемент с id="result" выводим результат
				
				/* location.reload(); */
	        }
	    });
	
	}

});

полный код таков

imediasun1 24.10.2013 17:23

это определение функции, за которое вы спросили?

danik.js 24.10.2013 17:58

alert(typeof $$f)


Почему выдает "undefined"?

imediasun1 24.10.2013 20:52

ответ function

imediasun1 25.10.2013 12:22

мне кажется там просто дело в экранировании кавычек и все

danik.js 25.10.2013 14:30

Цитата:

Сообщение от imediasun1
ответ function

Скриншот сделай того, как тут, на сайте запускаешь и видишь "function"

imediasun1 25.10.2013 14:37

я на своем сайте прописал этот алерт, а что это значит undefined в данном случае


Часовой пояс GMT +3, время: 01:09.