当用户单击按钮时,如何在另一个页面上运行PHP代码?

当用户单击按钮时,如何在另一个页面上运行PHP代码?,php,jquery,Php,Jquery,我希望在用户单击jQuery中的按钮时运行另一个页面中的php脚本。我试过了,但不起作用 以下是我的脚本: 从索引页单击的按钮 <button id="updatebutton" class="btn btn-sm btn-info" onclick="update_btn_click('params');"><span class="fa fa-refresh">&nbsp;Generate Cards</span></button>

我希望在用户单击jQuery中的按钮时运行另一个页面中的php脚本。我试过了,但不起作用

以下是我的脚本:

从索引页单击的按钮

 <button id="updatebutton" class="btn btn-sm btn-info" onclick="update_btn_click('params');"><span class="fa fa-refresh">&nbsp;Generate Cards</span></button>
生成卡片
PHP页面(card\u generator.PHP)

函数getRandomCodes(){ $ans=“0123456789”; $sus=strlen($ans)-1; 返回substr($ans,rand(0,$sus),1)。substr($ans,rand(0,$sus),1)。substr($ans,rand(0,$sus),1)。substr($ans,rand(0,$sus),1)。substr($ans,rand(0,$sus),1)。substr($ans,rand(0,$sus),1)。substr($ans,rand(0,$sus),1)($ans,rand(0,$sus),1)。substr($ans,rand(0,$sus),1); } 函数getRandomCode(){ $an=“01234abcdef5678ghijklm9nopqrxtuvxyz”; $su=strlen($an)-1; 返回substr($an,rand(0,$su),1)。substr($an,rand(0,$su),1)。substr($an,rand(0,$su),1)。substr($an,rand(0,$su),1)。substr($an,rand(0,$su),1)。substr($an,rand(0,$su),1)。substr($an,rand(0,$su),1)($an,兰特(0,$su),1); } 对于($i=0;$i<20;$i++){ $gen=mysqli_query($mysqli,“插入到管脚(序列、管脚)值中”(“.getRandomCode().”、“.getRandomCodes().”); } 如果有的话($gen){ 回音“ok”; }否则{ echo$mysqli->错误; } jQuery

function update_btn_click(param) {
$('#updatebutton').prop("disabled",true);
$.ajax({
    url:"generate_cards/card_generate.php",
    type:"post",
    beforeSend: function()
    {
        $("#message").fadeOut();
        $("#updatebutton").html('Generating <img src="../img/processing.gif" width="30" />');
    },
    success: function(response){
        if(response=='Ok') {
            //location.reload();
            $("#message").fadeIn(1000, function(){
                $("#message").html('<div class="alert alert-success"> <span class="fa fa-check"></span> &nbsp; Successfully Generated </div>');
                       //$("#btn-submit").html('<i class="fa fa-plus"></i> Add again');

                   });
                   cardTable.ajax.reload(null, false);
        } else {
            $("#message").html('<div class="alert alert-danger"><span class="fa fa-info-circle"></span> &nbsp; '+response+' !</div>');
            $('#updatebutton').prop("disabled",false);
        }
    },
    error: function(response){
        console.log('could not fetch data');
    },
    complete: function(response){
        // hide loading
    }
});
}
功能更新\u btn\u单击(参数){
$('#updatebutton').prop(“disabled”,true);
$.ajax({
url:“生成卡片/card\u generate.php”,
类型:“post”,
beforeSend:function()
{
$(“#消息”).fadeOut();
$(“#updatebutton”).html('Generating');
},
成功:功能(响应){
如果(响应=='Ok'){
//location.reload();
$(“#消息”).fadeIn(1000,函数(){
$(“#消息”).html('成功生成');
//$(“#btn submit”).html(‘再次添加’);
});
cardTable.ajax.reload(null,false);
}否则{
$(“#message”).html(“+response+”!”);
$('updatebutton').prop(“禁用”,false);
}
},
错误:函数(响应){
log('无法获取数据');
},
完成:功能(响应){
//隐藏装载
}
});
}

有人能告诉我正确的路径吗。

我已经用以下方法解决了这个问题:

function update_btn_click(param)
    {
        //$('#updatebutton').prop("disabled",true);
        var resp = $("#updatebutton");
        $.ajax({
            type: "POST", // Method type GET/POST           
            url: "generate_cards/cards.php", //Ajax Action url
            data: {},

            // Before call ajax you can do activity like please wait message
            beforeSend: function(xhr){
                resp.html('Generating <img src="../img/processing.gif" width="30" />');
            },

            //Will call if method not exists or any error inside php file
            error: function(qXHR, textStatus, errorThrow){
                resp.html("There are an error");
                $("#message").html('<div class="alert alert-danger"><span class="fa fa-info-circle"></span> &nbsp; '+data+' !</div>');
                //$('#updatebutton').prop("disabled",false);
            },

            success: function(data, textStatus, jqXHR){
                //resp.html(data);
                $("#message").fadeIn(1000, function(){
                    $("#message").html('<div class="text-success"> <span class="fa fa-check"></span> &nbsp; Successfully Generated </div>');
                           $("#updatebutton").html('<i class="fa fa-refresh"></i>&nbsp;Generate Cards');

                       });
                       cardTable.ajax.reload(null, false);
            }
        });
     }
功能更新\u btn\u单击(参数)
{
//$('#updatebutton').prop(“disabled”,true);
var resp=$(“#更新按钮”);
$.ajax({
类型:“POST”,//方法类型GET/POST
url:“generate_cards/cards.php”//Ajax操作url
数据:{},
//在调用ajax之前,您可以执行诸如“请等待”消息之类的活动
发送前:函数(xhr){
相应的html(“生成”);
},
//如果方法不存在或php文件中存在任何错误,将调用
错误:函数(qXHR、textStatus、errorThrow){
resp.html(“存在错误”);
$(“#message”).html(“+data+”!”);
//$('updatebutton').prop(“禁用”,false);
},
成功:函数(数据、文本状态、jqXHR){
//分别为html(数据);
$(“#消息”).fadeIn(1000,函数(){
$(“#消息”).html('成功生成');
$(“#更新按钮”).html(‘生成卡片’);
});
cardTable.ajax.reload(null,false);
}
});
}

不确定我是否得到了它,但似乎您只需要将generate\u cards/card\u generate.php更改为外部url。如果出现问题,请检查CORS是否正确enabled@danielarend,我需要使用cors吗?如果目标服务器被cors阻塞,是的。@Danieland,我现在正在本地测试…除了添加之外,您做了哪些更改<代码>数据:{}?这不应该有什么区别。它看起来也像是你删除了
if(response==“Ok”)
。如果查询失败,PHP中没有任何内容会导致HTTP错误,因此不会执行
错误:
函数。您应该调试为什么
响应==“Ok”
不起作用。使用“网络”选项卡查看PHP实际返回的内容。我否决了答案,因为它没有解释问题是什么,什么您更改了以修复它,以及为什么需要更改。
function update_btn_click(param)
    {
        //$('#updatebutton').prop("disabled",true);
        var resp = $("#updatebutton");
        $.ajax({
            type: "POST", // Method type GET/POST           
            url: "generate_cards/cards.php", //Ajax Action url
            data: {},

            // Before call ajax you can do activity like please wait message
            beforeSend: function(xhr){
                resp.html('Generating <img src="../img/processing.gif" width="30" />');
            },

            //Will call if method not exists or any error inside php file
            error: function(qXHR, textStatus, errorThrow){
                resp.html("There are an error");
                $("#message").html('<div class="alert alert-danger"><span class="fa fa-info-circle"></span> &nbsp; '+data+' !</div>');
                //$('#updatebutton').prop("disabled",false);
            },

            success: function(data, textStatus, jqXHR){
                //resp.html(data);
                $("#message").fadeIn(1000, function(){
                    $("#message").html('<div class="text-success"> <span class="fa fa-check"></span> &nbsp; Successfully Generated </div>');
                           $("#updatebutton").html('<i class="fa fa-refresh"></i>&nbsp;Generate Cards');

                       });
                       cardTable.ajax.reload(null, false);
            }
        });
     }