如何在html按钮上调用php脚本/函数单击

如何在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

在有人来找我或记下这句话之前,我已经浏览了整个互联网,想知道如何做到这一点(包括关于stackoverflow的同一个问题)。我是新来的,我发现学习新概念很难,所以请对我宽容一些

我想做的是在单击按钮时调用php脚本/函数。如果有帮助的话,我会把它放在WAMP里。这是我的密码:

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

注释

  • 包括用于使用jQueryAjax的jquery库
  • 将demo_test.php文件保存在javascript所在的同一文件夹中 文件驻留

  • 使用
    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';
     }