Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: $.get
 
 автор: VL   (26.05.2011 в 04:14)   письмо автору
 
 

делаю AJAX запрос

 var link= $.get("/js/calendar2/date.php", {some: "1", some2: "22" }, function(data)
 { 
 var url='http://site.ru ' + data;
alert(url); 
return url;
        
});
alert(link);

При проверке alerte внутри функции верное значение http://site.ru/22_1

А при alert(link) когда сделали return получаем значение:

object XMLHttpRequest

  Ответить  
 
 автор: ONYX   (26.05.2011 в 07:20)   письмо автору
 
   для: VL   (26.05.2011 в 04:14)
 

При таком раскладе функция $.get возвращает ссылку на объект AJAX запроса.
Результат же вашего запроса передается в функцию и оттуда происходят все манипуляции.
Наверное нужно сделать вот так:

var link;

$.get("/js/calendar2/date.php", {some: "1", some2: "22" }, function(data) {link ='http://site.ru ' + data; }); 

alert(link);

  Ответить  
 
 автор: VL   (26.05.2011 в 08:04)   письмо автору
 
   для: ONYX   (26.05.2011 в 07:20)
 

Пробывал не помогает=)

  Ответить  
 
 автор: AlexSol   (26.05.2011 в 09:04)   письмо автору
 
   для: ONYX   (26.05.2011 в 07:20)
 

нет. скрипт не остановиться на $.get и пойдет дальше, при вызове alert переменная еще будет пустая

  Ответить  
 
 автор: AlexSol   (26.05.2011 в 09:05)   письмо автору
 
   для: VL   (26.05.2011 в 04:14)
 

вам надо дальней код оформить в функцию и вызывать ее.

var link; 

$.get("/js/calendar2/date.php", {some: "1", some2: "22" }, function(data) {link ='http://site.ru ' + data; 
nextSteep() });  

function nextSteep(){
alert(link);
}

  Ответить  
 
 автор: VL   (26.05.2011 в 09:19)   письмо автору
 
   для: AlexSol   (26.05.2011 в 09:05)
 

alert я использовал для отладки.
Мне надо вернуть переменную из $.get чтобы потом в дальнешем пользоваться ей

function _some()
{
var link;

$.get("/js/calendar2/date.php", {name: "Vasya", age: "27" }, function(data) { somevar = data; });

link='http://site.com '+ somevar;
return link;
}

Мне надо получить то что возвращает date.php, как я понял присваивается переменной data.
А вот потом вывести оттуда.

  Ответить  
 
 автор: AlexSol   (26.05.2011 в 09:55)   письмо автору
 
   для: VL   (26.05.2011 в 09:19)
 

еще раз. вам надо оформить код в функцию и вызывать ее.

ваш последний код

function _some() 

var link; 
// отправляете запрос серверу
$.get("/js/calendar2/date.php", {name: "Vasya", age: "27" }, function(data) { somevar = data; }); 
// функция работает дальше, не дожидаясь ответа,  somevar еще не определена!
link='http://site.com '+ somevar; 
return link; 

  Ответить  
 
 автор: VL   (26.05.2011 в 10:17)   письмо автору
 
   для: AlexSol   (26.05.2011 в 09:55)
 

ПОнял. Но что то не дополучается


   function _someFunc(format, objDate) {
         
        

        var link; 
                var somevar;
           $.get("/js/calendar2/date.php", {name: "Vasya", age: "27" }, function(data) {somevar = data;nextSteep()  });  

        function nextSteep(){
        return somevar;
        }
        
        link=nextSteep();
                return link;
    };

Возвращает значение Undefined

  Ответить  
 
 автор: AlexSol   (26.05.2011 в 10:52)   письмо автору
 
   для: VL   (26.05.2011 в 10:17)
 

так таже самая ошибка.

оберните в функцию код где нужно использовать эту переменную




$.get("/js/calendar2/date.php", {name: "Vasya", age: "27" }, nextSteep(data));   

function nextSteep(somevar){ 
        alert( somevar);
   // тут код, в котором надо значение обработать, никаких return не надо. 
 

  Ответить  
 
 автор: VL   (27.05.2011 в 02:47)   письмо автору
 
   для: AlexSol   (26.05.2011 в 10:52)
 

В общем я попробывал как у вас.


 function _formatLink(format, objDate) {
       
    var link; 
        var somevar;
    var data;
     $.get("/js/calendar2/date.php", {name: "Vasya", age: "27" }, nextSteep(data));   
       function nextSteep(somevar){ 
         alert( somevar);
         link=somevar;
          }  
      return link;
    };


Значение Undefined;
Еще попробывал так,но тут наверное все понятно почему не работает.

   function _formatLink(format, objDate) {
         
        var link; 
                var somevar;
        var data;
           $.get("/js/calendar2/date.php", {name: "Vasya", age: "27" },  function(data) { nextSteep(data);});  

        function nextSteep(somevar){
        alert(somevar);
          link= somevar;
            
            };
          return link;
    };
    

На выходе Alert то что надо а вот значение опять же Undefined


Up:
Меня спасло

link ='http://vladnwes.ru/' + $.ajax({ type: "GET" , url: "/js/calendar2/date.php", data: "name=John&location=Boston" , async: false
   }).responseText; 

Примчем только при async: false

  Ответить  
 
 автор: AlexSol   (27.05.2011 в 09:38)   письмо автору
 
   для: VL   (27.05.2011 в 02:47)
 

>В общем я попробывал как у вас.

я такой билеберды не писал. у меня нет нигде объявления функции внутри другой функции.

nextSteep надо было вынести за пределы _formatLink

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования