Страница 5 из 5
Re: База пользователей приложения
Добавлено: 27 май 2011, 18:40
maksimn
А как сделать добавление города в базу?
Делаю так:
Код: Выделить всё
<script type="text/javascript" charset="utf-8">$(document).ready(function() { VK.init(function() { var parts=document.location.search.substr(1).split("&"); var flashVars={}, curr; for (i=0; i<parts.length; i++) { curr = parts[i].split('='); flashVars[curr[0]] = curr[1]; } var viewer_id = flashVars['viewer_id']; var auth_key = flashVars['auth_key']; VK.api("getProfiles", {uids:viewer_id,fields:"photo_medium_rec,bdate,sex,city"}, function(data) {// Заношу в переменную id города var city = data.response[0].city;// Определяю городVK.api("places.getCityById", {cids:city}, function(data) { var city_name = data.response[0].name; });// Город получен. Дальше нужно передать скрипту reg.php данные для занесение в базу. Но как это сделать? if(data.response) { $.post("/reg.php", { 'viewer_id': viewer_id, 'auth_key': auth_key, 'first_name': data.response[0].first_name, 'last_name': data.response[0].last_name, 'photo_big': data.response[0].photo_medium_rec, 'bdate': data.response[0].bdate, 'sex': data.response[0].sex });} }); }); }); </script>
Как передать город?
Re: База пользователей приложения
Добавлено: 27 май 2011, 22:46
Александр
Код: Выделить всё
VK.api("places.getCityById", {cids:city}, function(data) { // результат вызова метода places.getCityById доступен в этом месте. Логично, что обрабатывать надо здесь if(data.response) { var city_name = data.response[0].name; $.post("/reg.php",{'city': city_name}); }});
Re: База пользователей приложения
Добавлено: 28 май 2011, 09:01
ukhov
а как с сервера зная uid пользователя вк узнать всю информацию о пользователе (getProfiles » fields). в уроке получения имени, фамилиии и аватара просто подставляешь из этого списка соответствующие "переменные" (не знаю как сказать):
uid, first_name, last_name, nickname, domain, sex, bdate (birthdate), city, country, timezone, photo, photo_medium, photo_big, has_mobile, rate, contacts, education, online.
а если запросить город, ник, пол, страну, рейтинг и т.д., то возвращает undefined
Re: База пользователей приложения
Добавлено: 28 май 2011, 09:36
maksimn
Александр, это я уже понял. Мне нужно, чтобы отправлялись и личный данные (имя, фамилия, фото, дата, рождения, пол и другое), и город (название). Но как это сделать?
Код: Выделить всё
VK.api("getProfiles", {uids:viewer_id,fields:"photo_medium_rec,bdate,sex,city"}, function(data) {// ЗДЕСЬ ОСУЩЕСТВЛЯЮТСЯ ДЕЙСТВИЯ С ПОЛУЧЕННЫЙМИ ДАННЫМИ МЕТОДА getProfiles var city = data.response[0].city;// Определяю городVK.api("places.getCityById", {cids:city}, function(data) {// ЗДЕСЬ ОСУЩЕСТВЛЯЮТСЯ ДЕЙСТВИЯ С ПОЛУЧЕННЫЙМИ ДАННЫМИ МЕТОДА getCityById" var city_name = data.response[0].name; }); if(data.response) { $.post("/reg.php", { 'viewer_id': viewer_id, 'auth_key': auth_key, 'first_name': data.response[0].first_name, 'last_name': data.response[0].last_name, 'photo_big': data.response[0].photo_medium_rec, 'bdate': data.response[0].bdate, 'sex': data.response[0].sex });} });
ukhov, вот код
Код: Выделить всё
VK.api("getProfiles", {uids:viewer_id,fields:"photo_medium_rec,bdate,sex,city,rate"}, function(data) {// имя document.getElementById('first_name').innerHTML = data.response[0].first_name;// фамилия document.getElementById('last_name').innerHTML = data.response[0].last_name;// дата рождения document.getElementById('bdate').innerHTML = data.response[0].bdate;// пол document.getElementById('bdate').innerHTML = data.response[0].sex; });
У меня возвращает нормально. Может быть данные скрыты или не указаны?
Re: База пользователей приложения
Добавлено: 28 май 2011, 09:44
ukhov
maksimn
попробуй получить ник, рейтинг
Re: База пользователей приложения
Добавлено: 28 май 2011, 10:01
maksimn
Точно так же получаю любые данные.
Re: База пользователей приложения
Добавлено: 28 май 2011, 13:30
Александр
maksimn
Тебе данные надо отправить когда ты выполнишь метод places.getCityById ? Тогда почему ты отправляешь их в независимости от того выполнится ли этот метод? Нужно внутри функции выполнять...
Код: Выделить всё
VK.init(function() { VK.api("getProfiles", {uids:viewer_id,fields:"photo_medium_rec,bdate,sex,city"}, function(data) { var city = data.response[0].city; if(data.response[0].city) { // если ответ от сервера нормальный, то только в этом случае узнаём город VK.api("places.getCityById", {cids:city}, function(data_city) { // data поменял if(data_city.response) { // если getCityById выполнился нормально alert(data_city.response[0].name); // !!! data_city - из данных полученных от запроса getCityById, alert(data.response[0].first_name); // !!! data - из данных полученных от запроса getProfiles } }); } /* то что выполняется здесь, не будет ждать пока выполнится VK.api("places.getCityById"), кроме этого если getCityById уже начнет выполняться, то function(data) сотрет data, которые получили в VK.api("getProfiles") Либо менять data на разные, либо сохранять нужные данные из старой data в переменные, как сделал это с var city = data.response[0].city; В моём коде можно обойтись без это записи city в переменную. */ }); });
И тебе самому удобно работать с неотформатированным кодом? Мне вот не очень хочется его форматировать, чтобы было проще увидеть ошибку и помочь...
Re: База пользователей приложения
Добавлено: 28 май 2011, 13:33
Александр