post ajax и php

Тема в разделе "Другие языки", создана пользователем pronax, 9 сен 2010.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. pronax

    pronax Постоялец

    Регистр.:
    21 сен 2008
    Сообщения:
    146
    Симпатии:
    10
    Всем привет!
    Задача вроде и простая, но вот как её реализовать не могу себе представить...
    есть форма на html, есть кнопка отправки данных на сервер
    есть php которая этот запрос обрабатывает
    нужно сделать на ajax... т.е. пользователь зашёл, ввёл данные а php с помощью ajax вернул ему нужные данные...
    уже и в сторону fullajax смотреть, так и нечего и не понял
     
  2. BKK

    BKK

    Регистр.:
    21 окт 2009
    Сообщения:
    163
    Симпатии:
    45
    HTML:
    <html>
    <head>
    <title>PHP using AJAX</title>
    <script type="text/javascript">
    var time_variable;
    function getXMLObject()  //XML OBJECT
    {
       var xmlHttp = false;
       try {
         xmlHttp = new ActiveXObject("Msxml2.XMLHTTP")  // For Old Microsoft Browsers
       }
       catch (e) {
         try {
           xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")  // For Microsoft IE 6.0+
         }
         catch (e2) {
           xmlHttp = false   // No Browser accepts the XMLHTTP Object then false
         }
       }
       if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
         xmlHttp = new XMLHttpRequest();        //For Mozilla, Opera Browsers
       }
       return xmlHttp;  // Mandatory Statement returning the ajax object created
    }
    var xmlhttp = new getXMLObject();	//xmlhttp holds the ajax object
    function ajaxFunction() {
      var getdate = new Date();  //Used to prevent caching during ajax call
      if(xmlhttp) { 
      	var txtname = document.getElementById("txtname");
        xmlhttp.open("POST","testing.php",true); //calling testing.php using POST method
        xmlhttp.onreadystatechange  = handleServerResponse;
        xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xmlhttp.send("txtname=" + txtname.value); //Posting txtname to PHP File
      }
    }
    function handleServerResponse() {
       if (xmlhttp.readyState == 4) {
         if(xmlhttp.status == 200) {
           document.getElementById("message").innerHTML=xmlhttp.responseText; //Update the HTML Form element 
         }
         else {
            alert("Error during AJAX call. Please try again");
         }
       }
    }
    </script>
    <body>
    <form name="myForm">
    <table>
     <tr>
      <td>Enter Name</td>
      <td><input type="text" name="txtname" id="txtname" /></td>
     </tr>
     <tr>
      <td colspan="2"><input type="button" value="Submit" onclick="ajaxFunction();" /></td>
     </tr> 
    </table>
    <div id="message" name="message"></div> 
    </form>
    </body>
    </head>
    </html>
    PHP:
    <?php
     
    $a 
    $_POST['txtname'];
     
    echo 
    "Good Morning".$a;
     
    ?>
     
    pronax нравится это.
  3. Grabus

    Grabus Постоялец

    Регистр.:
    7 дек 2007
    Сообщения:
    91
    Симпатии:
    31
    а не проще jQuery.ajax ?
     
  4. Mr.Emm

    Mr.Emm Постоялец

    Регистр.:
    5 май 2008
    Сообщения:
    144
    Симпатии:
    107
  5. pronax

    pronax Постоялец

    Регистр.:
    21 сен 2008
    Сообщения:
    146
    Симпатии:
    10
    большое спасибо! всё работет, только два вопроса:
    1) как сделать loader(какой-нить индикатор что запрос ещё идёт)
    2) как сделать по нажатию Enter тоже передачу данных... а то по кнопке работает, а по Enter нет
     
  6. Mr.Emm

    Mr.Emm Постоялец

    Регистр.:
    5 май 2008
    Сообщения:
    144
    Симпатии:
    107
    1)
    PHP:
    //jQuery:

    $('#ajaxinfo').ajaxStart(function(){ 
     $(
    this).show();
     }); 
    $(
    '#ajaxinfo').ajaxStop(function(){ 
     $(
    this).hide();
     });           

    //style:

    #ajaxinfo {
    position:fixed;
    border1px solid rgb(255,255,255);
    bottom:0;
    right:7px;
    width24px;
    height24px;
    backgroundurl('img/load.gif'no-repeat center;
    opacity:0.3;
    }
    //html:

    <div id="ajaxinfo"></div>
    2)
    PHP:
    //jQuery:

    $('#form-id').keypress(function(e) {    
            if(
    e.which == 13) { 
             $(
    this).submit();
          return 
    false;
        }
       });
     
    pronax нравится это.
Статус темы:
Закрыта.