javascript - 在php方法ajax中显示js代码
问题描述
我通过单击一个按钮通过 ajax 方法运行 PHP 代码。
$(".btn_ranking").one('click', function(e) {
e.preventDefault();
var name = localStorage.getItem('name');
var time = localStorage.getItem('timer_end');
$.ajax({
url: "php/file.php",
method: "POST",
data: {
name: name,
time: time
}
});
});
我希望file.php
能够运行 js 代码,例如:
if ($time < $_SESSION['time']) {
[...]
}
else {
echo '<script>alert("lol");</script>';
}
并且当.btn_ranking
按下页面上的按钮时,将显示“大声笑”警报。如果有可能?
解决方案
好的..首先更改您的 js 代码以处理来自 php 脚本的答案:
$(".btn_ranking").one('click', function(e) {
e.preventDefault();
var name = localStorage.getItem('name');
var time = localStorage.getItem('timer_end');
$.ajax({
url: "php/file.php",
method: "POST",
data: { name: name, time: time }
success: function(data) {
console.log(data);
// check if it is true/false, show up alert
}
});
});
然后更改 php script (file.php),如下所示:
$response = [];
if ($time < $_SESSION['time']) {
$response['data'] = false;
}
else {
$response['data'] = true;
}
return json_encode($response);
想法就是这样:) 当你使用 POST 方法发送 ajax 时,从那里获取变量,而不是从 $_SESSION :)
你可以在这里看到很好的例子
推荐阅读
- javascript - 将 blob 音频正确转换为 webm 格式
- python - 使用来自嵌入式 python 的 pip freeze 和子进程给出 120 返回码
- mysql - SQS 大小限制,但在 Lumen 中使用 DB 没有限制
- javascript - 多个租户 firebaseui 和 gcip-iap 无效配置
- revenuecat - 工作设置现已损坏:RevenueCat Flutter
- c# - 怎样才能深入到孩子的层次?
- swiftui - 无法在 SwiftUI 中使用 Kingfisher 将图像保存到磁盘
- untagged - 缺少必需的参数“event_type”(字符串)
- node.js - NodeJS路由在本地主机上工作但在服务器上不工作
- rest - 获取访问令牌抛出错误“请求正文必须包含以下参数:'grant_type'”