singlepost

аякс или руки-крюки << На главную или назад  

index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>AJAX with PHP: Quickstart</title>
<script type="text/javasсript" src="quickstart.js"></script>
</head>
<body onload='process()'>
<center>
<div style="font-family: Arial, Helvetica, sans-serif; font-size: small; background-color: #ffffff; padding: 5px; border: #000099 1px solid; width: 600px; text-align: center">
This is a demo application from our book<br/>
<b>AJAX and PHP: Building Responsive Web Applications (Packt Publishing, 2006)</b><br/>
The book is a practical tutorial featuring detailed case studies on AJAX with PHP development.
<br/>
Find more book demos, free downloads and resources, at <a href="http://ajaxphp.packtpub.com">http://ajaxphp.packtpub.com</a>.
</div>
</center>
<br/><br/>
Server wants to know your name:
<input type="text" id="myName" onmouseup="process();" onkeyup="process();" />
<div id="divMessage" />
</body>
</html>

29 ответов в теме “аякс или руки-крюки”

  1. 1
    Александр Железновский ответил:

    quickstart.js

    var xmlHttp= createXmlHttpRequestObject();

    function createXmlHttpRequestObject()
    {
    var xmlHttp;
    if(window.ActiveXObject)
    {
    try
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e)
    {
    xmlHttp=false;
    }
    }
    else
    {
    try
    {
    xmlHttp=new XMLHttpRequest();
    }
    catch(e)
    {
    xmlHttp=false;
    }
    }
    if (!xmlHttp) alert ("ошибка создания объекта рекуэст");
    else
    return xmlHttp;
    }

    function process()
    {
    if (xmlHttp.readyState==4 || xmlHttp.readyState==0)
    {var name;
    name=encodeURIComponent(document.getElementById("myName").value);

    xmlHttp.open("GET","quickstart.php?name="+name,true);
    xmlHttp.onreadystatechange=handleServerResponse;
    xmlHttp.send(null);
    }
    else
    setTimeout('process()',1000);
    }
    function handleServerResponse()
    {
    if (xmlHttp.readyState==4)
    {
    if (xmlHttp.status==200)
    {
    xmlResponse=xmlHttp.responseXML;
    xmlDocumentElement=xmlResponse.documentElement;
    helloMessage=(xmlDocumentElement.firstChild.data);
    document.getElementById("divMessage").innerHTML='<i>'+unescape(helloMessage)+ '</i>';
    setTimeout('process()',1000);

    }
    else
    {
    alert("проблемы с сервером" + xmlHttp.statusText);
    }
    }
    }

  2. 2
    Александр Железновский ответил:

    <?php
    header('Content-Type: text/xml' );
    echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
    echo '<response>';

    $f=$_GET['name'];

    $userName=array('рол','BOGDAN','FILIP','YODA');
    echo $f;
    //if ($f=="г") {echo "!!!";}
    if (in_array(strtoupper($f),$userName))
    echo 'привет мастер'.htmlentities($f).'!';
    else if (trim($f)=='')
    echo 'скажи как тебя зовут';
    else
    echo htmlentities ($f).'мы не знакомы';
    echo '</response>';

    ?>

  3. 3
    Александр Железновский ответил:

    три файла. Первый—с формой. Второй с аяксом. Третий пхп скрипт обработки. Если пишу в текстовой строке русскими буквами–реакции нет. Английские работают. понимаю, что дело в кодировках, но не одна функция по перекодированию не сработала. Помогите или сделаю себе сепуку. Меня уже достало это все.

  4. 4
    Евгений Тихонов ответил:

    А iconv?

  5. 5
    Антон Щиров ответил:

    URLEncode. для name в js

  6. 6
    Антон Щиров ответил:

    xmlHttp.open("GET","quickstart.php?name=" + URLEncode(name), true);

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.