Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.04.2014, 23:34
Новичок на форуме
Отправить личное сообщение для syan Посмотреть профиль Найти все сообщения от syan
 
Регистрация: 19.04.2014
Сообщений: 4

Передача массива в нескольких строках
Добрый вечер,

подскажите пожалуйста, запоролся на самом простом при изучении ajax.
Есть массив с текстом, нужно данные из него вывести на страницу в нескольких строках используя ajax.

Соответственно, когда в php файле

foreach($original as $row => $key){
		echo "$row"; }


а в js файле

xmlResponse = xmlHttp.responseXML;
xmlElement = xmlResponse.documentElement;
message = xmlElement.firstChild.data;
var underInput = document.getElementById("underInput");
underInput.innerHTML = message;


то все выводится в одну строку.
А хочется в разные выводить.
Пытался писать так

foreach($original as $row => $key){
		echo "$row <br />"; }

или так

foreach($original as $row => $key){
		echo "$row \n"; }


но ничего не получается
Ответить с цитированием
  #2 (permalink)  
Старый 20.04.2014, 04:36
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Так а где сам запрос то? Что с сервера приходит? В какой элемент данные вставляются? А то ты какие-то странные куски кода привел.

Последний раз редактировалось jsnb, 20.04.2014 в 04:42.
Ответить с цитированием
  #3 (permalink)  
Старый 20.04.2014, 14:28
Новичок на форуме
Отправить личное сообщение для syan Посмотреть профиль Найти все сообщения от syan
 
Регистрация: 19.04.2014
Сообщений: 4

Вот html файл

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
	<script type = "text/javascript" src="simple.js"></script>
</head>
<BODY>
<INPUT type="text" id="searchword" value="EA641"/>
<INPUT type="button" id="button" value="Узнать цену" onclick="process()" />
<p id="underInput">...</p>
</body>
</html>


Вот js файл полностью
var xmlHttp = createXmlHttpRequest();

function createXmlHttpRequest() {
    var xmlHttp;
    try {
      if(window.ActiveXObject) // для IE
          xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      else // для остальных браузеров
          xmlHttp=new XMLHttpRequest();
    }
    catch(e) {
        xmlHttp=false;
        alert("Объект XMLHttpRequest не создан!");
    }
    return xmlHttp;
	}

function process () {
	if(xmlHttp.readyState==4 || xmlHttp.readyState==0) {
		wd = encodeURIComponent(document.getElementById("searchword").value);
		xmlHttp.open("GET", "store.php?searchword="+wd, true); 
		xmlHttp.onreadystatechange = handleResponse;
		xmlHttp.send(null);
	}else {
		setTimeout('process()',1000);
	}
}

function handleResponse() {
	if (xmlHttp.readyState==4) {
		if(xmlHttp.status==200) {
			xmlResponse = xmlHttp.responseXML;
			xmlElement = xmlResponse.documentElement;
			message = xmlElement.firstChild.data;
			var underInput = document.getElementById("underInput");
			underInput.innerHTML = message;
		} else {
		alert ("Something is wrong");
		}
	}
}


В php-файле происходит подключение к другому сайту и загрузка информации в массив, который я написал в первом сообщении. Мне нужно вывести этот массив на страницу на разных строках
Ответить с цитированием
  #4 (permalink)  
Старый 20.04.2014, 15:19
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от syan Посмотреть сообщение
xmlResponse = xmlHttp.responseXML;
Так с сервера XML приходит? Content-Type правильный стоит? Если приходит не полноценный XML документ, то используйте responseText.
Ответить с цитированием
  #5 (permalink)  
Старый 20.04.2014, 16:32
Новичок на форуме
Отправить личное сообщение для syan Посмотреть профиль Найти все сообщения от syan
 
Регистрация: 19.04.2014
Сообщений: 4

jsnb,
через текст получается, но хочется все-таки через xml.
Content-type стоит правильный, xml тоже полноценный, проблема в том, что я не могу его заставить опознать перевод строки. Если я ставлю <br>, то он его считает дополнительным узлом (насколько я понимаю), а "\n" не узнает вовсе. Может есть какой-нибудь другой символ перевода строки?
Ответить с цитированием
  #6 (permalink)  
Старый 20.04.2014, 17:02
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

А нельзя просто в строке сделать разделитель и на стороне клиента уже вместо него <br> поставить?
Ну, что-то типо:
//получаем строку вида:
var str = 'val1|val2|val3|val4';
//заменяем | на <br>
str = str.split('|').join('<br>');
//вставляем куда надо:
el.innerHTML = str;

Последний раз редактировалось jsnb, 20.04.2014 в 17:10.
Ответить с цитированием
  #7 (permalink)  
Старый 20.04.2014, 17:33
Новичок на форуме
Отправить личное сообщение для syan Посмотреть профиль Найти все сообщения от syan
 
Регистрация: 19.04.2014
Сообщений: 4

так наверно можно, ладно, спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача смешанного массива из php в js Daiver Серверные языки и технологии 13 31.05.2013 10:11
Передача массива из Php в Javascript kamushek Серверные языки и технологии 45 20.02.2012 11:11
передача массива из PHP в javascript simple Общие вопросы Javascript 3 03.10.2010 12:19
Передача массива, через сокет yello Серверные языки и технологии 2 30.10.2009 18:41
Передача массива JS в cookies Denis Общие вопросы Javascript 1 04.08.2009 12:24