Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отправить массив на сервер (https://javascript.ru/forum/misc/45959-otpravit-massiv-na-server.html)

maternik 22.03.2014 13:25

Отправить массив на сервер
 
Всем привет!
Я тут запилил массив и хочу с помощью ajax заслать его на сервер и там записать, используя php. Фреймворков не юзаю. К печали, получаю на сервере строку, склеенную из массива, т.е. запятые повсюду. Хочу иметь именно массив, чтоб его так, построчно (будет html-разметка типа).
var uri = "spisok.php";
    var xhr; 
	
	if (window.XMLHttpRequest) {
		 xhr = new XMLHttpRequest();
	}
	else {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	   
   
   if (xhr){
    xhr.onreadystatechange = function() { 
      if (xhr.readyState == 4) {
        if(xhr.status == 200) { 
          document.getElementById("текст2").innerHTML = xhr.responseText; 
        }
      }
    };
		 xhr.open('POST', 'spisok.php', true); 
 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  
	xhr.send("a=" +  наЗапись); 
		
		} else{alert("Ошибка при создании XMLHttp запроса");}

сервак:
<?php
 $a = $_POST["a"];
 $count=count($a); 
 $h = fopen("q.html","w");
 fwrite($h,$a);
 /*for ($i=0; $i<$count; $i++){
  fwrite($h,$a[$i]."/n");
 }*/
 fclose($h);
?>

Erolast 22.03.2014 13:44

Массив ты передать никак можешь. Ты можешь передать только строку.
Есть замечательный формат данных JSON. Почитай про него и передавай свой массив в этом формате - и javascript, и php имеют нативные функции для конвертации данных и в JSON, и обратно.

maternik 22.03.2014 13:46

ОК
на крайняк split попробую

danik.js 22.03.2014 14:03

Цитата:

Сообщение от Erolast
Массив ты передать никак можешь.

Ну на самом деле можно.
xhr.send("a[]=abc&a[]=cde&a[]=fgh");

На серваке получим массив. Это такая фишка PHP (но не только).


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