Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   как правильно получить ответ аяксом (https://javascript.ru/forum/dom-window/45479-kak-pravilno-poluchit-otvet-ayaksom.html)

imediasun1 02.03.2014 23:44

как правильно получить ответ аяксом
 
Есть функция php в ней я формирую массив $competitors
как этот массив получить в аякс в виде перечисления доменов,
пробую так
public function google_engine(){
	$this->input->post();
	$keywords=$_POST['data'];
	$competitors=$this->google->index($keywords);
	echo '<script>var a = ['.implode(",",$competitors).']</script>';
	}

function get_position(url){
$.ajax({
   type: "POST",
   url: "/sengine/google_engine",
   data:{data:url},
   success: function(a){
     alert(a);
   }
 });
}
так приходит просто в тегах скрипт ответ такого вида
<script>
var a=[elita.com,domen.com]
</script>
а надо чтобы ответ выглядел так
elita.com,domen.com как это осуществить?

danik.js 03.03.2014 01:07

header('Content-Type: application/json');
echo json_encode($competitors);


При вызове $.ajax() передай параметр dataType: 'json'

imediasun1 03.03.2014 01:21

и что в js появится массив competitors?
как в js принять этот массив?

danik.js 03.03.2014 01:47

Цитата:

Сообщение от imediasun1
как в js принять этот массив?

Цитата:

Сообщение от imediasun1
success: function(a){
     alert(a);
   }

  

imediasun1 04.03.2014 15:42

Я составил вот такой рабочий вариант на основе вашего совета
public function google_engine(){
	header('Content-Type: application/json');
	$competitors=$this->google->index($keywords);
	echo json_encode($competitors);
	}

function get_position(url){
alert(url);
$.ajax({
   type: "POST",
   url: "/sengine/google_engine",
   data:{data:url},
   dataType: 'json',
   success: function(url_list){
alert(url_list);
  }
});
}


массив в пхп у меня выглядит следующим образом
[0]=>([0]=>site.com,[1]=>site1.com),[1]=>([0]=>site2.com,[1]=>site3.com)

Но в js я получаю список доменов через запятую, как мне разделить на два массива входящий массив из пхп?

danik.js 04.03.2014 15:57

Цитата:

Сообщение от imediasun1
Но в js я получаю список доменов через запятую, как мне разделить на два массива входящий массив из пхп?

Все уже разделено. А список через запятую получается когда массивы преобразовываются в строку (при выводе в алерт):


var data = [[1,2],[3,4]];

alert(data);


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