PHP点击事件处理程序

5

我是PHP编程的新手,想知道是否可以像ASP.NET一样处理PHP事件。

我的意思是,我有一个img元素,并且希望在这个img元素被点击时执行某些任务。

我知道如何在ASP.NET中实现它,但请帮助我了解如何在PHP中实现。

谢谢, GURU


你的意思是 "ASP.net" 是指 WebForms 吗? - VolkerK
1个回答

14

PHP本身不处理客户端事件。而且PHP的范式与ASP.NET略有不同,其中客户端和服务器端脚本绑定在同一代码页面中。 在客户端,使用JavaScript来处理onClick事件,并在事件处理程序代码中发出AJAX调用以将响应发送回您指定的PHP页面。

<script type="text/javascript">
var http = false;

if(navigator.appName == "Microsoft Internet Explorer") {
  http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
  http = new XMLHttpRequest();
} 

function click() {
  http.open("GET", "test.php?name=" + document.getElementById("name").value, true);
  http.onreadystatechange=function() {
    if(http.readyState == 4) {
      document.getElementById('foo').innerHTML = http.responseText;
    }
      }
  http.send(null);
    }
</script>
name:<input id="name" type="text">
<p><button onclick="click()">Click me</button></p>

<div id="foo">
  Hell
</div>

以下是一个 test.php 的示例代码:

<?php
function validate($name) {
  if($name == '') {
    return '';
  }

 if(strlen($name) < 3) {
   return "<span id=\"warn\">Username too short</span>\n";
}

switch($name) {
case 'bob':
case 'jim':
case 'joe':
case 'carol':
  return "<span id=\"warn\">Username already taken</span>\n";
  }

  return "<span id=\"notice\">Username ok!</span>\n";
}

echo validate(trim($_GET['name']));
?>

谢谢你提供了关于ASP.NET和PHP之间澄清的信息,但是你能否给我一个简单的例子来说明如何使用AJAX调用PHP文件(myfile.php)中的一个函数(函数名为myfunction)? - necixy
精彩的回答,再次感谢您的合作。 - necixy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接