如何在html按钮上调用php脚本/函数单击
在有人来找我或记下这句话之前,我已经浏览了整个互联网,想知道如何做到这一点(包括关于stackoverflow的同一个问题)。我是新来的,我发现学习新概念很难,所以请对我宽容一些 我想做的是在单击按钮时调用php脚本/函数。如果有帮助的话,我会把它放在WAMP里。这是我的密码:如何在html按钮上调用php脚本/函数单击,php,ajax,onclick,Php,Ajax,Onclick,在有人来找我或记下这句话之前,我已经浏览了整个互联网,想知道如何做到这一点(包括关于stackoverflow的同一个问题)。我是新来的,我发现学习新概念很难,所以请对我宽容一些 我想做的是在单击按钮时调用php脚本/函数。如果有帮助的话,我会把它放在WAMP里。这是我的密码: <?php include 'the_script.php'; ?> <button type="button" onclick="the_function()">Click Me</bu
<?php include 'the_script.php'; ?>
<button type="button" onclick="the_function()">Click Me</button>
为什么这不起作用?我听说按钮是客户端等,PHP是服务器端,这意味着不能将两者链接在一起。我知道您必须使用AJAX来实现这一点,但是我完全不知道如何做到这一点。我试过用谷歌搜索,但什么也找不到。我知道如何使用AJAX和调用事件,但是我仍然不知道如何让它调用PHP脚本
你能不能把你的答案尽可能的清楚和简单,我对这是新手
谢谢你的帮助:)
编辑***
出于某种原因,无论我走到哪里,每个人的代码都是不同的。阿贾克斯教我的方式看起来完全不同。请你这样写好让我明白吗?谢谢,这里有一个例子:
var request;
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
} else {
request = new ActiveXObject("Microsoft.XMLHTTP");
}
request.open('GET', 'file.php', true);
request.onreadystatechange = function() {
if (request.readyState===4 && request.status===200) {
do stuff
}
}
request.send();
//demo_test.php
<?php echo 1; ?>
注释
使用
jQuery
。在HTML页面中-
<button type="button">Click Me</button>
<script>
$(document).ready(function() {
$("button").click(function(){
$.ajax({
url:"php_page.php", //the page containing php script
type: "POST", //request type
success:function(result){
alert(result);
}
});
});
})
</script>
像这样修改_script.php
<script>
the_function() {
alert("You win");
}
</script>
_函数(){
警惕(“你赢了”);
}
PHP:仅由服务器运行,并响应诸如单击链接(GET)或提交表单(POST)之类的请求。
HTML和Javascript:仅在某人的浏览器中运行(不包括NodeJS)
我假设您的文件看起来像:
因为PHP只响应请求(通过$\u请求获取、发布、放置、修补和删除),所以即使它们在同一个文件中,也必须运行PHP函数。这为您提供了一个安全级别,“我是否应该为此用户运行此脚本?”
如果您不想刷新页面,可以向PHP发出请求,而无需通过称为异步Javascript和XML(AJAX)的方法进行刷新。当然,AJAX是解决方案 要执行AJAX请求(为了方便起见,我们可以使用jQuery库) 第1步。 在网页中包括jQuery库 a。您可以从jQuery.com下载jQuery库并将其保存在本地 b。或者简单地粘贴以下代码
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
当您单击按钮并警告响应时,它将向test.php发出AJAX请求
例如,test.php中的代码是
<?php echo 'hello'; ?>
然后,每当您单击按钮时,它都会发出“hello”警报。
试试这个:
点击我
$(文档).ready(函数(){
$(“按钮”)。单击(函数(){
$.ajax({
键入:“POST”,
url:'script.php',
成功:功能(数据){
警报(数据);
$(“p”)。文本(数据);
}
});
});
});
在script.php中
<?php
echo "You win";
?>
您也可以使用
$(document).ready(function() {
//some even that will run ajax request - for example click on a button
var uname = $('#username').val();
$.ajax({
type: 'POST',
url: 'func.php', //this should be url to your PHP file
dataType: 'html',
data: {func: 'toptable', user_id: uname},
beforeSend: function() {
$('#right').html('checking');
},
complete: function() {},
success: function(html) {
$('#right').html(html);
}
});
});
And your func.php:
function toptable()
{
echo 'something happens in here';
}
希望它能帮助一些人是被//javascript//包围的函数吗?就像@bart2puck问的那样,
是
是是函数吗?如果是的话,那么只有你可以叫它。但正如你在问题中所展示的,它似乎是PHP
函数,所以你不能在HTML
按钮的点击事件中调用它。PHP在服务器上运行,而js在客户端运行,你不能仅仅通过js调用PHP。为此,您需要制作一个我描述过的ajax callI,请检查,我希望您会高兴。抱歉,我无法理解您编写的内容,无论我走到哪里,每个人编写的代码都不一样,因此令人难以置信地困惑。我学习AJAX的方式完全不同,我将提供一个示例,以便人们了解如何编写AJAX,这样我就可以理解您可以使用javascript和jquery调用AJAX。更简单的是jQueryAjax。Jquery是一个javascript库,用于简化操作。您正在使用javascript和传统的Ajax。任何不同的代码概念都是一样的。成功:函数(结果)意味着什么?为什么要将“result”作为参数之一传递?我不明白,在他的示例中,desult是test.php返回的变量。在这种情况下,这个词应该是hello。所以,alert(result)actuall的意思是alert(“hello”)。如果您将echo“Happy new Year”放在test.php中,则alert(result)将显示Happy new Year。“success”是一个回调函数,它将在我们获得成功的完整响应后立即调用。“result”参数包含test.php的结果(因此在本例中为“hello”)@akhil.cs是否可以这样做以在网页中而不是在警报中输出结果?本页上的所有答案都显示了一个警报,我觉得这是一个奇怪的选择。为什么要将“数据”传递到函数中,我了解除此之外的所有其他内容that@DanielSpajic:当ajax返回文本“You win”时,它将出现在标记中,我在后面写的标签button@DanielSpajic:您可以尝试一次,然后您完全理解我应该传递什么作为“数据”@DanielSpajic:mo需要传递任何东西。您只需将我的第一个代码放在index.php中,将第二个代码放在script.php中即可。然后单击按钮。它会自动工作。只需尝试一次。@DanielSpajic:还有一件事,如果您愿意,您还可以针对其他概念尝试我的这个答案
<?php
function the_function() {
echo 'I just ran a php function';
}
if (isset($_GET['hello'])) {
the_function();
}
?>
<html>
<a href='the_script.php?hello=true'>Run PHP Function</a>
</html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<button type="button" onclick="foo()">Click Me</button>
function foo () {
$.ajax({
url:"test.php", //the page containing php script
type: "POST", //request type
success:function(result){
alert(result);
}
});
}
<?php echo 'hello'; ?>
<button type="button">Click Me</button>
<p></p>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$.ajax({
type: 'POST',
url: 'script.php',
success: function(data) {
alert(data);
$("p").text(data);
}
});
});
});
</script>
<?php
echo "You win";
?>
$(document).ready(function() {
//some even that will run ajax request - for example click on a button
var uname = $('#username').val();
$.ajax({
type: 'POST',
url: 'func.php', //this should be url to your PHP file
dataType: 'html',
data: {func: 'toptable', user_id: uname},
beforeSend: function() {
$('#right').html('checking');
},
complete: function() {},
success: function(html) {
$('#right').html(html);
}
});
});
And your func.php:
function toptable()
{
echo 'something happens in here';
}