使用 Ajax 和 Javascript 从 html 按钮运行 php 文件

我有一个 php 函数,我想从我有的 Html 按钮运行它。php 函数位于与 Html 按钮不同的文件中。


所以我设法做到了这一点:


<input type="submit" name="test" id="bt1" value="RUN" /><br/>

但这不是我想做的。我想调用 php 函数:


<button id="bt1" class="button button5">< Random </button>

因为还有其他与按钮相关的操作需要同时运行。


旁注:我的 php 函数从 json 文件中获取信息。


我有3个文件。


文件 1 (AF.php) 这是按钮所在的位置 文件 2(Display.php) 这是我的 jquery/javascript/ajax 脚本所在的位置 文件 3(Names.php) 这是 php 函数所在的位置。我想使用文件 1 中的按钮来运行文件 3 中的 php 函数。


所以这是我迄今为止尝试过的:


文件 1(AF.php)


 button id="bt1" class="button button5">< R30K</button>

文件 2(Display.php)


$(document).ready(function () {

            $("#bt1").on("click", (function () {

                getName("Names.php");

            })

        });

  function getName(Names.php) {

        $.ajax({

            url:"Names.php" + Names.php,

            success:function (Names.php) {

                $("#res" + Names.php).html(result)

            }

        });

文件 3(Names.php)


<?php


    function group1(){

        $jsondata = file_get_contents("Clients.json");

        $json = json_decode($jsondata, true);

        $output = '<ul>';

        foreach($json['Reps']as $reps){

            $output .='<h4>' .$reps['Client']."<h4>";

            $output .= "<li>".$reps['repCode']."</li>";

        }


        $element = $json['Reps'][array_rand($json['Reps'])];

        echo $element['Client'];

        echo " ";

        echo $element['repCode'];

    }


    if(array_key_exists('bt1',$_POST)){

        group1();

    }


    ?>

期望的结果是我可以使用文件 1 中的 Html 按钮从文件 3 运行我的函数。


千巷猫影
浏览 189回答 1
1回答

慕无忌1623718

带有该按钮的 HTML 和 jQuery 代码必须位于浏览器加载的同一文档中,或者将它们放在同一个文件中,或者使用 php include/require。该 jQuery 代码将无法运行,因为您将“Names.php”放置在各处(为什么?)。试试这个:$( function(){&nbsp; &nbsp; $("#bt1").click(function() {&nbsp; &nbsp; &nbsp; &nbsp; $.ajax({&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; url: 'Names.php',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type: 'get',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; success: function(data) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("#res").html(data);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; });});这会将 ajax 响应字符串放入任何带有id="res".代码已经过测试并且有效。编辑:我刚刚注意到您$_POST在 php 脚本中使用来检查按钮是否被单击,因此您必须修改 jQuery ajax 函数:更改type: 'get',为type: 'post',data: 'bt1=1',之后添加'type: 'post'。
打开App,查看更多内容
随时随地看视频慕课网APP