Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как присвоить значение переменной которое возвращает аякс? (https://javascript.ru/forum/jquery/32773-kak-prisvoit-znachenie-peremennojj-kotoroe-vozvrashhaet-ayaks.html)

nip 29.10.2012 19:47

Как присвоить значение переменной которое возвращает аякс?
 
всем привет, вот функция
function SendData(id){
    $.ajax({
        url: 'test.php',
        data : 'postVar=' + id,
        type : "POST",
        success: function (data) {
            alert ("Pattern fo ID: " + data);
        }
    });
}

data возвращает строку из бд, как ее присвоить переменной уже в жс файле?:help:

Serg_pnz 29.10.2012 20:03

Попробуй, только у меня там событие error - тестил, лень на сервере было...
function SendData(id){
    res = $.ajax({
        url: 'test.php',
        data : 'postVar=' + id,
        type : "POST",
        error: function (data) {
            res = "Pattern fo ID: " + data;
        }
    });
	return res;
}

console.log(SendData(1))

nip 29.10.2012 23:21

спасибо, а подскажите как быть, у меня в этой переменной два массива из бд, с именами и фамилиями, как то можно их разбить на два отдельных массива? т.е. там в php-файле mysql_fetch_assoc возвращает $res['name'] и $res['female'] и они оба попадают в переменную data, а как их разделить можно?

Serg_pnz 29.10.2012 23:57

я так делаю:
1. на сервере возвращаю
$res['err'] = 1;
		$res['html'] = 'Не верный логин и/или пароль';
		echo json_encode($res);

2. а принимаю так
success: function(msg){
				var result = $.parseJSON(msg);
				if (result.err==0) {
					...
				}

nip 30.10.2012 00:13

не много не понял ваc, на сервере у меня
$array = mysql_fetch_assoc($result) or die(mysql_errno());
echo $array['female'] ;
echo $array['name'];
и попадают эти два массива в res
function SendData(id){
    res = $.ajax({
        url: 'test.php',
        data : 'postVar=' + id,
        type : "POST",
        error: function (data) {
            res = "Pattern fo ID: " + data;
        }
    });
	return res;
}
А как сделать чтобы каждый массив был в разной переменной? прошу прощения, я нубик в программинге

NikolasGrad 30.10.2012 06:35

$array = mysql_fetch_assoc($result) or die(mysql_errno());
echo json_encode(str_replace('\'', '"', $array));

function SendData(id) {
	res = $.ajax({
		url : 'test.php',
		data : 'postVar=' + id,
		type : "POST",
		dataType : "json",
		success : function (data) {
			res = "Pattern fo ID: " + data.female + " " + data.name;
		}
	});
	return res;
}

nip 30.10.2012 12:30

привет, когда так data.female или так data.name, то выдает undefined, а когда просто data то {"name":"Dima, Anya","female":"bla, bla"}, это через алерт если, а переменная рес возвращает даже не массив а object xmlhttprequest
function SendData(id){
    result = $.ajax({
        url: 'test.php',
        data : 'postVar=' + id,
        type : "POST",
        success: function (data) {
            alert(data)
            console.log(data)
            return data;
        }
    });
    return result;
}

файл пхп я оставил, так потому что я эти два массива сплитом уже в жаваскрипте буду разбивать
$array = mysql_fetch_assoc($result) or die(mysql_errno());
echo json_encode($array);

nip 30.10.2012 14:08

всем спасибо, получлось

Serg_pnz 30.10.2012 14:13

nip,
обрати внимание, у него в запросе стоит dataType : "json",, что означает ждем json-данные. У меня же втупку ответ разбирается var result = $.parseJSON(msg);

nip 30.10.2012 14:31

да-да, в этом и была все проблема :dance:


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