За последние 24 часа нас посетили 18477 программистов и 1612 роботов. Сейчас ищут 1794 программиста ...

jQuery -> ajax ->php ->javascript

Тема в разделе "JavaScript и AJAX", создана пользователем Blop, 16 май 2009.

  1. Blop

    Blop Активный пользователь

    С нами с:
    16 май 2009
    Сообщения:
    10
    Симпатии:
    0
    Задача:
    при помощи ajax подключиться к базе сделать выборку и вернуть ее в скрипт присовив переменной
    со всем разобрался... а вот как javadcript переменной присовить значенее полученное по ajax
    $.ajax({
    type: "GET",
    url: "ajax_php_bd_time.php",
    data: "id="+phpArray_id_clear[q]
    })

    Как это релиазовать
     
  2. zheka_13

    zheka_13 Активный пользователь

    С нами с:
    1 май 2009
    Сообщения:
    71
    Симпатии:
    0
    значения(е) полученные через аякс НЕВОЗМОЖНО присвоить javadcript переменной будь она глобальной или локальной. так как аякс(xmlHttpRequest) - это отдельная функция. При выполнении ее можно что то сделать с ее ответом на уровне DOM.. но передать значение далее в javascript нельзя... если кто то меня поправит то буду рад услышать
     
  3. Blop

    Blop Активный пользователь

    С нами с:
    16 май 2009
    Сообщения:
    10
    Симпатии:
    0
    Ага, это я уже понял.
    Спасибо.
    Буду искать другие пути
     
  4. ты вообще о чем?
    [js]$.get('ajax_php_bd_time.php',{id:phpArray_id_clear[q]},function(data){ alert(data); }, 'text');[/js]
     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    У объекта xmlHttpRequest существует свойство responseText, которое и содержит полученные данные.
     
  6. Blop

    Blop Активный пользователь

    С нами с:
    16 май 2009
    Сообщения:
    10
    Симпатии:
    0

    че то я туплю...
    скажем есть кусок жавакода в котором присутствует некая переменная, скажем s
    Есть табилца на скуле из которой по ajax я делаю вылорку и получаю некоторое значение которое я хотел бы присовить жававской пересенной s
    ну типа:

    s = $.get(...

    и дльше уже в жаваскрипте работать с этой переменной
    Это реально?
     
  7. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
  8. Blop

    Blop Активный пользователь

    С нами с:
    16 май 2009
    Сообщения:
    10
    Симпатии:
    0
    эти примеры я видел, все они привязываются к id тегам.
     
  9. zheka_13

    zheka_13 Активный пользователь

    С нами с:
    1 май 2009
    Сообщения:
    71
    Симпатии:
    0
    я имел ввиду что ответ полученный от POST или GET запроса невозможно засунуть в переменную и дальше ее юзать в скрипте.. что то сделать с полученными данными можно только в callback функции, куда они собственно и передаются
     
  10. Blop

    Blop Активный пользователь

    С нами с:
    16 май 2009
    Сообщения:
    10
    Симпатии:
    0
    Вот можно примерчик?
    Что то ка краз с обработкой получаемых от сервера данных у меня бяда...
    Скажем задача написать счетчик.
    Есть таблица, в ячейке записано число:

    HTML:
    1. <table><tr><td><div id='txt1'>10<div></td></tr><table>
    Нужно взять это число и передать фалу скажем count.php, в котором это число, скажем увеличивается на 52

    PHP:
    1.  
    2. $id +=52;
    3. echo $id
    4.  

    Потом это число нужно вернуть в таблицу

    [js]

    var num_count = document.getElementById('txt1').innerHTML

    //===================== ajax begin =========================

    $.ajax({
    type: "get",
    url: "count.php",
    data: "id="+num_count,
    dateType: "script",
    success: function(msg){
    alert( "Data Saved: " + msg );
    document.getElementById('txt1').innerHTML= msg;
    }
    });


    [/js]



    я так понимаю что это рабочий код и он будет пахать
    или я гоню?
     
  11. zheka_13

    zheka_13 Активный пользователь

    С нами с:
    1 май 2009
    Сообщения:
    71
    Симпатии:
    0
  12. Blop

    Blop Активный пользователь

    С нами с:
    16 май 2009
    Сообщения:
    10
    Симпатии:
    0
    А как изменитсья код, когда нужно будет в пхп передать два числа и два же вернуть на страницу?
     
  13. zheka_13

    zheka_13 Активный пользователь

    С нами с:
    1 май 2009
    Сообщения:
    71
    Симпатии:
    0
    php
    PHP:
    1.  
    2. $m[0]=$_GET['id1'];
    3. $m[1]=$_GET['id2'];
    4. echo json_encode($m);
    5.  
    6.  
    JS
    Код (Text):
    1.  
    2.  
    3.  $.ajax({
    4.    type: "get",
    5.    url: "count.php",
    6.    data: "id1="+num_count+"&id2="+num_count2,      
    7.    dateType: "json",
    8.    success: function(msg){
    9.      for (i=0; i<msg.length; i++){
    10.           alert(msg[i]);
    11.      }
    12.    }
    13.   });
     
  14. Blop

    Blop Активный пользователь

    С нами с:
    16 май 2009
    Сообщения:
    10
    Симпатии:
    0
    Спасибо!
    Буду пробовать.

    Еще вопрос

    вот тако код работает:


    [js]
    var phpArray_name = new Array('txt1','txt2');
    var phpArray = new Array('100','80');

    for(var q=0; q < phpArray.length; q++)
    {
    document.getElementById(phpArray_name[q]).innerHTML= phpArray[q];
    }
    [/js]


    А вот такой уже нет:




    [js]
    var phpArray_name = new Array('txt1','txt2');
    var phpArray = new Array('100','80');

    for(var q=0; q < phpArray.length; q++)
    {
    $.ajax({
    type: "get",
    url: "ajax_php_bd_time_elon.php",
    data: "id="+phpArray_id_clear[q],
    dateType: "script",
    success: function(msg, phpArray_name){
    document.getElementById(phpArray_name[q]).innerHTML= msg;
    }
    });
    }

    [/js]

    Ругается на строчку


    [js]
    document.getElementById(phpArray_name[q]).innerHTML= msg;
    [/js]

    точнее даже на отсутсвие phpArray_name хотя если вызвать его алертом выше блока аякса он отобразиться.
    Как его передать в функцию что то я туплю...
     
  15. zheka_13

    zheka_13 Активный пользователь

    С нами с:
    1 май 2009
    Сообщения:
    71
    Симпатии:
    0
    а что содержится в переменной q1?
     
  16. Blop

    Blop Активный пользователь

    С нами с:
    16 май 2009
    Сообщения:
    10
    Симпатии:
    0
    а тут нету переменной q1, вроде...
     
  17. zheka_13

    zheka_13 Активный пользователь

    С нами с:
    1 май 2009
    Сообщения:
    71
    Симпатии:
    0
    балин точно нет... сорри провтыкал...
    тогда выведи алертом что оно покажет у тебя так

    Код (Text):
    1.  
    2.  
    3. var phpArray_name = new Array('txt1','txt2');
    4.  var phpArray = new Array('100','80');
    5.  
    6.   for(var q=0; q < phpArray.length; q++)
    7.   {
    8.    $.ajax({
    9.    type: "get",
    10.    url: "ajax_php_bd_time_elon.php",
    11.    data: "id="+phpArray_id_clear[q],      
    12.    dateType: "script",
    13.    success: function(msg, phpArray_name){
    14.    alert(phpArray_name[q]);
    15.    document.getElementById(phpArray_name[q]).innerHTML= msg;
    16.    }
    17.   });
    18.   }
     
  18. Blop

    Blop Активный пользователь

    С нами с:
    16 май 2009
    Сообщения:
    10
    Симпатии:
    0
    это я пробывал.
    тут он ругается на передачу phpArray_name в функцию грит ожидается объект и тд...

    я решил пойти другим путем передать этот параметр на count.php и получить его обратно при возврате в success
    Не сильно красиво но должно работать, я думаю..


    [js]

    for(var q=0; q < phpArray.length; q++)
    {
    $.ajax({
    type: "get",
    url: "ajax_php_bd_time_elon.php?id="+phpArray_id_clear[q]+"&k="+phpArray_name[q],
    dateType: "json",
    success: function(msg){
    alert(msg);
    alert(msg.length)
    for (i=0; i<msg.length; i++){
    alert(msg);
    }
    }
    });
    }

    [/js]

    те я переделал твой пример по работе с Json

    но конструкцией msg.length он выводит длинну элемента, а не порядковый номер элемента как хотелось бы...
    И поэтому цикл For работает уже не корректно



    PHP:
    1.    $m[0]=$_GET['id'];
    2.    $m[1]=$_GET['k'];
    3.  echo json_encode($m);  
     
  19. zheka_13

    zheka_13 Активный пользователь

    С нами с:
    1 май 2009
    Сообщения:
    71
    Симпатии:
    0
    ну не знаю я .. мне тут уже сказать сложно... аякс в цикле - это перебор... надо смотреть на задачу и реализовывать ее по другому...
     
  20. Blop

    Blop Активный пользователь

    С нами с:
    16 май 2009
    Сообщения:
    10
    Симпатии:
    0
    а так хочется... =)
     
  21. zheka_13

    zheka_13 Активный пользователь

    С нами с:
    1 май 2009
    Сообщения:
    71
    Симпатии:
    0
    просто не должно такого вообще быть... это же программирование... творчество епта... ну зачем такое делать.... надо просто поставить задачу... и посмотреть как ее можно решить... надо избегать конкретики.... на конкретику сложно отвечать.... нужно ставить задачу так - есть страница с тем то и тем то... и юзер нажимает то то и то то (или не нажимает) и происходит то то и то то....
    я уверен... тут без цикла можно обойтись .... нужно только знать что должно работать... учитесь ставить задачи и формулировать правильно вопросы..