我在按钮上有以下功能:
$(function() {
$("#submit").click(function(){
$.ajaxSetup({ cache: false });
$.ajax({
url:'crfile.php',
type:'GET',
});
};
它调用以下 PHP 文件:
if (session_status() == PHP_SESSION_ACTIVE){
session_destroy();
}
session_start();
$extension = ".txt";
$_SESSION['fname'] = substr(md5(rand()), 0, 7).$extension;
fopen("temp/" . $_SESSION['fname'], 'w');
$fname = $_SESSION['fname'];
它在 temp/文件夹中创建一个具有随机名称的文件。两者都工作正常除了当我再次单击#submit
按钮而不重新加载页面时。它重新运行该函数,但不会在 PHP 脚本中生成新的文件名。
我以为是缓存或 session ,但事实并非如此。我使用的是 PHP 5.5。
有人可以建议一下吗?
最佳答案
首先,您需要检查您的ajax功能。尝试使用方法 'post',或在您的代码中使用 on('click',function(){ .....}) 。
其次,您需要确保您的 ajax 功能确实有效。 使用“打印”和“退出”进行调试。
if (session_status() == PHP_SESSION_ACTIVE){
session_destroy();
}
session_start();
$extension = ".txt";
$_SESSION['fname'] = substr(md5(rand()), 0, 7).$extension;
//debugging command
print $_SESSION['fname'];
print 'see this?';
exit;
fopen("temp/" . $_SESSION['fname'], 'w');
$fname = $_SESSION['fname'];
这样你就知道你的ajax是否工作了。您可以在上面代码的末尾使用调试命令。
尝试这些代码,如果您需要更多帮助,请告诉我。
关于php - 按钮上的 AJAX 功能第一次点击后不运行 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31236444/