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

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

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2015, 12:04   #1
555MasteR555
Новичок
Джуниор
 
Регистрация: 23.11.2010
Сообщений: 1
По умолчанию "Unexpected end of input" и "Unexpected token <"

Очень нужна помощь. Сам уже просто голову сломал. Видимо, я чего-то не понимаю... Задание простое: на php парсится валидный xml-файл (каталог ноутбуков для интернет магазина), возвращает инфу на клиент в виде готовой html страницы. Затем для получения подробных сведений я отправляю тому же парсеру id нужного мне ноутбука, парсер в json возвращает мне данные про нужный ноут, и с помощью javascript мне нужно его вывести на страницу. Использовать JQuery или другие библиотеки мне нельзя по условию, хотя с JQuery я написал, всё отлично работает. Ошибку выдаёт в php, но методом тыка выяснил, что если удаляю строку с функцией Json.parse(), то ошибка пропадает. Просто мозг уже себе взорвал, помогите!!!

Это код "parser.php":
PHP код:
<?php
$title 
='Catalog laptops';
require 
"headerForShop.php";

$dom = new DOMDocument('1.0''UTF-8');
$file = @ $dom->Load("notebooks.xml");
$notebook_array = array();
$note = array();
if (
$dom->validate()) {
    echo 
'<div id="catalog">';
    
$notebooks $dom->getElementsByTagName('notebook');
        foreach (
$notebooks as $notebook) {
            
$attributes $notebook->childNodes;
            
$notebook = array(
            
"id" => $attributes->item(1)->nodeValue,
            
"image" => $attributes->item(3)->nodeValue,
            
"manufacturer" => $attributes->item(5)->nodeValue,
            
"model" => $attributes->item(7)->nodeValue,
            
"year" => $attributes->item(9)->nodeValue,
            
"resolution" => $attributes->item(11)->nodeValue,
            
"color" => $attributes->item(13)->nodeValue,
            
"screen_size" => $attributes->item(15)->nodeValue,
            
"processor" => $attributes->item(17)->nodeValue,
            
"ram" => $attributes->item(19)->nodeValue,
            
"videocard" => $attributes->item(21)->nodeValue,
            
"storage" => $attributes->item(23)->nodeValue,
            
"os" => $attributes->item(25)->nodeValue,
            
"weigth" => $attributes->item(27)->nodeValue,
            
"price" => $attributes->item(29)->nodeValue,
            );
            
$notebook_array[$notebook['id']] = $notebook;
            require 
"goods.php";
        }
        if(isset(
$_POST['id'])){
            
$note $notebook_array[5];
            require_once(
'JSON.php');
            
$oJson = new Services_JSON();
            echo 
$oJson->encode($note);
        }
        
    echo 
'</div>';    
require 
"moreinfo.php";    
}

require 
"footer.php";?>
Это код javascript, который принимает информацию в JSON:
Код:
function showMoreInfo(event){
	event = event || window.event;
	id = event.target.id;
	var request = new XMLHttpRequest();
	request.open('POST', 'parser.php', true);
	request.onreadystatechange = function(e) {
		if (this.readyState = 4) {
			if (this.status == 200) {
				response = JSON.parse(request.responseText);
				document.getElementById("ID").innerHTML = response.id;
				document.getElementById("manufacturer").innerHTML = response.manufacturer;
				document.getElementById("model").innerHTML = response.model;
				document.getElementById("year").innerHTML = response.year;
				document.getElementById("screen_size").innerHTML = response.screen_size;
				document.getElementById("resolution").innerHTML = response.resolution;
				document.getElementById("processor").innerHTML = response.processor;
				document.getElementById("ram").innerHTML = response.ram;
				document.getElementById("videocard").innerHTML = response.videocard;
				document.getElementById("os").innerHTML = response.os;
				document.getElementById("color").innerHTML = response.color;
				document.getElementById("weigth").innerHTML = response.weigth;
				document.getElementById("price").innerHTML = response.price;
				document.getElementById("moreinfoDiv").style.display = 'block';
			}
			else {
				alert('Error!!!');
			}
		}
	}
	request.send('id='+id);
}
Забыл главное, ругается всегда на первую строку php файла с текстом:
Uncaught SyntaxError: Unexpected end of input parser.php:1
Uncaught SyntaxError: Unexpected token < parser.php:1
555MasteR555 вне форума Ответить с цитированием
Старый 22.02.2015, 16:37   #2
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Значит сервер отдаёт на JSON а хрень какую-то. Выведите в консоль то, что отдаёт сервер и всё сразу станет ясно.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в скрипте:"Parse error: syntax error, unexpected '{'" StakanpORTvejna Помощь студентам 0 15.11.2013 16:37
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" Alexsandrr Microsoft Office Excel 4 19.10.2013 14:22
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Visual Basic, использование операторов "for..next" и "if.. end if" Dieza Помощь студентам 0 27.10.2010 20:46
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04