基本上我要做的是在点击一个按钮后执行一段代码或一个函数。我没有任何发送请求的html表单,我不希望页面重新加载。
实施例: 如果我单击名为Hello的按钮,我想在php中执行下一段代码
echo 'Welcome '.$user.' !';
稍后编辑: 我没有说我不想使用AJAX,是的,我知道PHP是服务器端。
答案 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请求,例如,通过执行与下一个代码示例相同的操作。这是使用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
参数中可用。您现在可以使用它(例如,向用户显示)。