在php中按下按钮触发一段代码

时间:2014-02-15 20:22:55

标签: javascript php

基本上我要做的是在点击一个按钮后执行一段代码或一个函数。我没有任何发送请求的html表单,我不希望页面重新加载。

实施例: 如果我单击名为Hello的按钮,我想在php中执行下一段代码

echo 'Welcome '.$user.' !';

稍后编辑: 我没有说我不想使用AJAX,是的,我知道PHP是服务器端。

2 个答案:

答案 0 :(得分:1)

您必须使用AJAX或使用用户的新信息重新加载页面/框架。
以此为例,尝试根据您的需要进行修改:

<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
}
</script>
</head>
<body>

<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>

</body>
</html>

答案 1 :(得分:0)

两种语言之间存在差异。 PHP 在服务器上运行,这意味着当您检索页面时,您发送请求,服务器将处理该请求并返回页面。

那一刻,这个故事的PHP部分已经结束,客户端部分开始了。当您单击某个按钮,并且希望发生某些事情时,您可能会使用 JavaScript 。该语言在您的浏览器中运行。

要使两者相互通信,您必须通过JavaScript代码以某种方式向服务器发出请求:

  • 提交表单
  • 重新加载页面,
  • 一个AJAX请求。

由于您不希望前两个选项,所以我将向您解释如何使用第三个选项,即AJAX请求。

AJAX请求实际上是对服务器的异步请求,您不需要重新加载页面,它会在屏幕后面运行。为此,您需要将事件处理程序连接到该AJAX请求,例如,通过执行与下一个代码示例相同的操作。这是使用jQuery library编写的,因为它简化了事件处理和发送AJAX请求。如果您不相信我或者您不想使用它,您可以随时查看Filipe's answer,它为您提供了一个如何在没有jQuery的情况下处理AJAX请求的正确示例。

$("#myButton").on("click", function() {
    $.get("theOtherPage.php", function(data) {
        // Do something with "data"
    });
});

在这种情况下,onClick事件处理程序会添加到按钮#myButton中,当点击它时,会请求名为theOtherPage.php的页面。在这里放置您想要的内容,例如:

echo 'Welcome '.$user.' !';

请求完成后,数据将在回调的data参数中可用。您现在可以使用它(例如,向用户显示)。