使用ajax自行处理php页面

时间:2014-11-05 00:39:43

标签: php ajax

这篇文章AJAX Post to self in PHP

使用exit()时,在此通话之前是否必须打印某些内容? 我写过标记/ ph,引用了外部css php脚本。该脚本使用print(或echo)和a 调用标题('类型:text / css')。在自我处理php页面中这不是很有用或必要吗?我发现 它们无穷无尽。使用获取查询和帖子,整个站点可以在任何状态下显示一页 来自形式。我记得我在早期开始学习php时断言的那篇文章 页面提交给自己,浏览器将自动使用异步请求。但在某些情况下 显式的ajax调用很有用。

1 个答案:

答案 0 :(得分:0)

这是我在做什么以及我想做什么。 我在页面中有一个文本字段和一个按钮 我将文本写入文本字段并单击按钮 按钮的javascript单击事件处理程序获取文本字段值 并将其附加到附加到请求中的url的get查询。方法是

编辑:指定成功的环境。 我在Mac OSX上使用Firefox v12.0,在本地计算机上预安装了apache服务器。 (任何人使用运行OSX的Mac,都有预先安装的apache服务器,但激活php需要 编辑httpd.com文件以取消注释加载php模块的行。还有一条线 告诉Apache使用什么扩展来查找和执行PHP代码。你也必须告诉它 将index.php作为索引文件来运行其中的php并使其充当目录索引文件)

javascript代码:

function _FETCH()
     { 
      this.init = function(oName, elem, txt)
           {
            var but = document.getElementById(elem);
                but.addEventListener('click', function(){ oName.req('GET', self, '', null, oName, txt) } )
           }

      this.req = function(method, url, type, msg, oName, txt)
           {
             var field = document.getElementById(txt);
                 url+="?ajxTst="+encodeURIComponent(field.value);
             var it = new XMLHttpRequest();
                 it.open(method, url, type);
                 it.setRequestHeader('Content-Type', 'text/plain');
                 it.onreadystatechange = function()
                    {
                     var elem = document.getElementById('well');
                     switch(it.readyState)
                       {  
                        case 0:
                        case 1:
                        break;
                        case 2:
                        case 3:
                        elem.childNodes[0].data = " waiting";
                        break;
                        case 4:
                        oName.handleResponse(it.responseText);
                        break;
                        default:
                        alert('ajax processing error');
                        break;
                       }
                    }
                 it.send(msg);
           }

      this.handleResponse = function(resp)
           {
            var elem = document.getElementById('well');
                elem.childNodes[0].data = " "+resp;
           }
     }

页面中的php,javascript和标记:

<?php
/*
created 11/4/2014
*/
$_self = basename($_SERVER['PHP_SELF']);
if($_POST || $_GET)
  {
   if($_GET['ajxTst'])
     {
      header("Content-Type: text/plain");
      print $_GET['ajxTst'];
      exit();
     }
  }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <title>JS lab 2</title>
<link rel="stylesheet" type="text/css" href="local.css" media="screen" />
<script type="text/javascript" src="local.js">
</script>
<script type="text/javascript">
 //<![CDATA[
  var self = "<?php print $_self; ?>";
  window.onload = function()
   {
    var ajx = new _FETCH();
        ajx.init(ajx, 'send', 'tlk');
    }
 //]]>
 </script>
 </head>
 <body>
 <div class="panel">
 <p class="title">Js Lab 2</p>
 <p class="norm"><a href="../?uar=lab_3">Lab 3 home</a></p>
 <p class="norm">Work with ajax and self processing page (this)</p>
 <hr />
 <p class="norm" id="well"> idle </p> 
 <p class="norm">
 <input type="text" id="tlk" value="" /><input type="button" id="send" value="send" />
 </p>
 </div>
 </body>
 </html>

我希望找到这个的人会找到它。我花了一段时间才把它弄好了