当用户单击按钮时,如何在另一个页面上运行PHP代码?
我希望在用户单击jQuery中的按钮时运行另一个页面中的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"> Generate Cards</span></button>
<button id="updatebutton" class="btn btn-sm btn-info" onclick="update_btn_click('params');"><span class="fa fa-refresh"> 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> 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> '+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> '+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> Successfully Generated </div>');
$("#updatebutton").html('<i class="fa fa-refresh"></i> 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> '+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> Successfully Generated </div>');
$("#updatebutton").html('<i class="fa fa-refresh"></i> Generate Cards');
});
cardTable.ajax.reload(null, false);
}
});
}