PHP 单击事件处理程序

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/2486620/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 06:40:11  来源:igfitidea点击:

PHP click event handlers

php

提问by necixy

I'm new to PHP programming and I wanted to know that is it possible to handle PHP events as we do in ASP.NET

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

I mean I've got a img and I want to perform some task on click event of this img.

我的意思是我有一个 img,我想在这个 img 的点击事件上执行一些任务。

I know how to do it in ASP.NET but please help me in context of PHP

我知道如何在 ASP.NET 中执行此操作,但请在 PHP 上下文中帮助我

Thanks, GURU

谢谢,大师

回答by alemjerus

PHP itself does not handle client-side events. And PHP paradigm slightly differs from ASP.NET where client and server-side scripds bound together in the same page of code. On client-side, use javascript to handle onClick event, and in event-handler code issue AJAX call to your designated PHP page to send back a response.

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

<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>

And this is a test.php code:

这是一个 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']));
?>