Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ajax - success(data)({}) (https://javascript.ru/forum/misc/49795-ajax-success-data-%7B%7D.html)

Urukhay 28.08.2014 15:45

Ajax - success(data)({})
 
Как можно получить значение ячейки не по её названию (data.name), а по её порядковому номеру.

Aetae 28.08.2014 16:04

Какой ячейки? Партийной?
Телепаты сбежали с планеты, так что придётся вам выражать всё словами.

Urukhay 28.08.2014 17:43

Цитата:

Сообщение от Aetae (Сообщение 327952)
Какой ячейки? Партийной?
Телепаты сбежали с планеты, так что придётся вам выражать всё словами.

Имел ввиду ячейки из таблицы базы данных MySQL, которая пришла в функции success.

Aetae 28.08.2014 17:56

Она не от божъего откровения пришла, а с сервера. Как серверный код отдаёт так оно и будет. Передаёт он порядковый номер - значит можно. Нет так нет. Что у вас там на сервере никто кроме вас не знает.

Urukhay 29.08.2014 08:32

В общем с сервера при помощи Ajax мне приходит ассоциативный массив - data. Я вывожу имя (Name, то бишь ячейку) так:

success: function(data){
alert(data.Name);
}


Пусть эта ячейка имеет индекс в таблице БД Mysql - 2. Как мне вывести эту же ячейку, но не по её имени, а по индексу? При том, что массив ассоциативный(то есть в php обработчике mysql_fetch_assoc), и используется dataType: "json".

Aetae 29.08.2014 08:50

Использовать mysql_fetch_row, вестимо.

MallSerg 29.08.2014 10:59

<!Doctype html>
<html><head><meta charset="utf-8"></head><body>
    <input type="button" onclick=" alert  ( BuIndex (data,1)  )" value="1 значение из var data">
    <input type="button" onclick=" alert  ( KeyBuIndex (data,1)  )" value="1 ключ из var data"> <br>
    <input type="button" onclick=" alert  ( BuIndex (data,2)  )" value="2 значение из var data">
    <input type="button" onclick=" alert  ( KeyBuIndex (data,2)  )" value="2 ключ из var data"> <br>
    <input type="button" onclick=" alert  ( BuIndex (data,3)  )" value="3 значение из var data">
    <input type="button" onclick=" alert  ( KeyBuIndex (data,3)  )" value="3 ключ из var data"> <br>
    <input type="button" onclick=" alert  ( BuIndex (data,4)  )" value="4 значение из var data">
    <input type="button" onclick=" alert   ( KeyBuIndex (data,4)  )" value="4 ключ из var data"> <br>
<script type="text/javascript">

	data = {};
	data.name = "КаКа";
	data.id = 123456;
	data.str = "сточка текста";

emptu=function f(o,n,v){var k,r,i=0;
BuIndex=function(q,n){return f(q,n,9)};
KeyBuIndex=function(q,n){return f(q,n)};
for(k in o){n==++i?(v?r=o[k]:r=k):0}return r;
};emptu();delete emptu;
</script></body></html>
Это крайне глупо =)

Erolast 29.08.2014 11:06

Збс оформление.

Urukhay 29.08.2014 11:33

Какой именно массив обрабатывать? Без mysql_fetch_row alert выводит - "undefined":

$query = mysql_query("SELECT * FROM table WHERE ID='10'");
$res = mysql_fetch_assoc($query);
echo json_encode($res);


$.ajax({
type: "POST",
data: "Test=1",
url: "test.php",
dataType: "json",
success: function(data){
alert(data[1]);
}
})

Aetae 29.08.2014 11:34

MallSerg, порядок в ассоциативном массиве в js не гарантирован. В целях каких-либо внутренних оптимизаций движок спокойно может переставить значения местами. Да, обычно for in итерирует в том же порядке в каком значения были заданы, но в любой момент порядок может поменяться. И это происходит чаще чем кажется.

Urukhay, а что выводит alert(data)?


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