За последние 24 часа нас посетили 66593 программиста и 1632 робота. Сейчас ищут 950 программистов ...

PHP и AJAX

Тема в разделе "PHP для новичков", создана пользователем EndoCrinolog, 6 фев 2012.

  1. EndoCrinolog

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

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    Начал осваивать ajax. Нашел скрипт на одном из форумов:
    Код (Text):
    1.  
    2. <script>
    3. function createXmlHttp(){
    4. if (typeof XMLHttpRequest != "undefinder"){
    5. return new XMLHttpRequest();
    6. }else
    7. if (window.ActiveXObject){
    8. var Versions = ["MSXML2,XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
    9. for (var i = 0; i < Versions.length; i++){
    10. try {
    11. var XmlHttp = new ActiveXObject(Version[i]);
    12. return XmlHttp;
    13. }
    14. catch (oError){
    15. ////////
    16. }
    17. }
    18. }
    19. throw new Error("Не возможно создать XMLHttp");
    20. }
    21.  
    22.  
    23. var XMLHttp = createXmlHttp();
    24. XMLHttp.open("get", "anekdot.php?id=" + id, true);
    25. XMLHttp.onreadystatechange = function(){
    26. if (XMLHttp.readyState == 4){
    27. if (XMLHttp.status == 200){
    28. alert("Анекдот: " + XMLHttp.responseText);
    29. }else{
    30. alert("Ошибка!");
    31. }
    32. }
    33. }
    34. XMLHttp.send(null);
    35. </script>
    Затем сосздал файл anekdot.php с таким содержимым:
    Код (PHP):
    1. <?php
    2. $id = $_GET['id'];
    3.  
    4. if ($id == 1){
    5. echo "
    6. Хаха!
    7. ";
    8. }
    9. ?>
    Но к сожалению ни одного алерта не было... Что не так?
     
  2. yuri

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

    С нами с:
    16 янв 2012
    Сообщения:
    288
    Симпатии:
    2
    юзай джиквери (jquery) в инете примеров стотыщьмильёнов ! а то что ты нашел - какой-то изврат :)
     
  3. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    $.get();
     
  4. Neka

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

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    yuri, c каких это пор PureJS - извращение?)) это с ультра-облегченным jQuery все начали учить его синтаксис, а не JS.

    EndoCrinolog, я код так не воспринимаю, крайне советую лису и FireBug, там отличнейший отладчик JS. А так же есть книга "AJAX+PHP Динамические веб-приложения" или как-то подобно называется. Я изучил XmlHtttpRequest по нему, а потом увидел как это сделано в jQuery, и забыл про этот страшный код (хотя вовсе не жалел времени, потраченного на копание)

    Код (Text):
    1. jQuery.get('anekdot.php?id=" + id', function(data) {
    2.     jQuery('#someElement').html(data);
    3. });
     
  5. EndoCrinolog

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

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    спасибо за пояснение, но что есть #someElement? подскажите, куда его пихать
     
  6. Neka

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

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    Код (Text):
    1. <div id="someElement">This text will be replaced by jQuery</div>
    Код (Text):
    1. jQuery('#someElement').html('<p>New data of <strong>#someElement</strong></p>');
    =
    Код (Text):
    1. <div id="someElement"><p>New data of <strong>#someElement</strong></p></div>
    http://api.jquery.com/category/selectors/

    Там кстати отличнейшая документация
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    это типа цссшная фишка
    #lalala это элемент с id='lalala'
    .lalala это элемент с class='lalala' ну или class='jujuju lalala'

    соотв если что-то начинается с буквы, то ищутся все такие теги
    $('div').html('все дивы получат это внутри себя и во вложеных дивах в итоге останется только один див =)');

    соотв работает с классами
    $('div.lalala') - выберет все дивы с классом lalala

    если надо чтобы у какого-то элемента были оба класса надо оба через точку: $('div.lalala.jujuju')
     
  8. EndoCrinolog

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

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    Спасибо большое за пояснение =)
     
  9. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7