草庐IT

javascript - 对 PHP 函数的 AJAX 调用不会使其向我的数据库输入值

coder 2023-10-06 原文

几天来我一直在编写一段代码,但不知何故我无法将值 1 传递到我的数据库。 基本上我想要实现的是,一旦用户单击“收集硬币”按钮,它就会将值 1 传递到我的数据库。每天中午 12 点,MySQL 事件会将列“dailyfree”重置为 0,因此第二天用户可以再次单击该按钮,因为数据库中“dailyfree”的值再次为 0。我仍然不希望用户在重置数据库中的值之前能够单击“收集硬币”。 问题是,一旦用户单击按钮,它就会给他免费硬币,但值 1 不会传递到数据库。单击按钮后,“dailyfree”列仍然为 0。有人知道这是为什么吗?

仅供引用:我对编码非常陌生!

这是我现在正在使用的东西。

Javascript:

function free(){
var str = "username"; 
var term = "searched_word"; 
var index = str.indexOf(term); 
if (index != -1) { 
var daily = 1;
$.ajax({
url:"/free?daily="+daily,
    success:function(data){     
        try{
            data = JSON.parse(data);
            console.log(data);
            if(data.success){
                bootbox.alert("Success! You've claimed 100 free credits!");                 
            }else{
                bootbox.alert(data.error);
            }
        }catch(err){
            bootbox.alert("Javascript error: "+err);
        }
    },
    error:function(err){
        bootbox.alert("AJAX error: "+err);
    }
});

   }
  else {
    bootbox.alert("Your username does not contain the searched_word!");}
   }


function disDelay(obj){
    obj.setAttribute('disabled','disabled');
    setTimeout(function(){obj.removeAttribute('disabled')},86400)
}

按钮本身

<div class="text-right">
    <button class="btn btn-success btn-block" id="free" onclick="free(); disDelay(this)">Collect free coins</button>
</div>

PHP

$freecoins = 100;
case 'free':
    if(!$user) 
    exit(json_encode(array('success'=>false, 'error'=>'You must login to access the redeem.')));
    $daily = 1;
    if(!preg_match('/^[a-zA-Z0-9]+$/', $daily)) {
        exit(json_encode(array('success'=>false, 'error'=>'Code is not valid')));
    } else {
        $sql = $db->query('SELECT * FROM `users` WHERE `dailyfree` = '.$db->quote($dailyfree));
        if($sql->rowCount() != 0) {
            $row = $sql->fetch();
            if($row['user'] == $user['userid']) 
            exit(json_encode(array('success'=>false, 'error'=>'You have already redeemed your daily reward!')));
            $db->exec('INSERT INTO `users` SET `dailyfree` = '.$dailyfree.' , `balance` = `balance` + '.$freecoins.' WHERE `userid` = '.$db->quote($user['userid']));
            exit(json_encode(array('success'=>true, 'credits'=>$freecoins)));
        } else {
            exit(json_encode(array('success'=>false, 'error'=>'Code not found')));
        }
    }
    break;

我真的希望你能帮我找出为什么它不会将值输入到我的数据库中!无论如何,祝你有个愉快的一天 :) 感谢你的帮助和时间!

最佳答案

查询错误。

应该是更新查询。

$db->e​​xec('UPDATE用户SETdailyfree= '.$dailyfree.' ,balance=balance+ '.$freecoins.' WHEREuserid= '.$db->quote($user['userid']));

或者,如果您想在用户记录出现时更新,否则插入数据,然后查看 ON DUPLICATE KEY

关于javascript - 对 PHP 函数的 AJAX 调用不会使其向我的数据库输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45808651/

有关javascript - 对 PHP 函数的 AJAX 调用不会使其向我的数据库输入值的更多相关文章

  1. ruby - Highline 询问方法不会使用同一行 - 2

    设置:狂欢ruby1.9.2高线(1.6.13)描述:我已经相当习惯在其他一些项目中使用highline,但已经有几个月没有使用它了。现在,在Ruby1.9.2上全新安装时,它似乎不允许在同一行回答提示。所以以前我会看到类似的东西:require"highline/import"ask"Whatisyourfavoritecolor?"并得到:Whatisyourfavoritecolor?|现在我看到类似的东西:Whatisyourfavoritecolor?|竖线(|)符号是我的终端光标。知道为什么会发生这种变化吗? 最佳答案

  2. ruby - 在没有 sass 引擎的情况下使用 sass 颜色函数 - 2

    我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re

  3. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  4. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  5. ruby-on-rails - 在 ruby​​ 中使用 gsub 函数替换单词 - 2

    我正在尝试用ruby​​中的gsub函数替换字符串中的某些单词,但有时效果很好,在某些情况下会出现此错误?这种格式有什么问题吗NoMethodError(undefinedmethod`gsub!'fornil:NilClass):模型.rbclassTest"replacethisID1",WAY=>"replacethisID2andID3",DELTA=>"replacethisID4"}end另一个模型.rbclassCheck 最佳答案 啊,我找到了!gsub!是一个非常奇怪的方法。首先,它替换了字符串,所以它实际上修改了

  6. ruby - 在 Ruby 中有条件地定义函数 - 2

    我有一些代码在几个不同的位置之一运行:作为具有调试输出的命令行工具,作为不接受任何输出的更大程序的一部分,以及在Rails环境中。有时我需要根据代码的位置对代码进行细微的更改,我意识到以下样式似乎可行:print"Testingnestedfunctionsdefined\n"CLI=trueifCLIdeftest_printprint"CommandLineVersion\n"endelsedeftest_printprint"ReleaseVersion\n"endendtest_print()这导致:TestingnestedfunctionsdefinedCommandLin

  7. ruby - 我可以将我的 README.textile 以正确的格式放入我的 RDoc 中吗? - 2

    我喜欢使用Textile或Markdown为我的项目编写自述文件,但是当我生成RDoc时,自述文件被解释为RDoc并且看起来非常糟糕。有没有办法让RDoc通过RedCloth或BlueCloth而不是它自己的格式化程序运行文件?它可以配置为自动检测文件后缀的格式吗?(例如README.textile通过RedCloth运行,但README.mdown通过BlueCloth运行) 最佳答案 使用YARD直接代替RDoc将允许您包含Textile或Markdown文件,只要它们的文件后缀是合理的。我经常使用类似于以下Rake任务的东西:

  8. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

    rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

  9. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  10. ruby - 在 Ruby 中按名称传递函数 - 2

    如何在Ruby中按名称传递函数?(我使用Ruby才几个小时,所以我还在想办法。)nums=[1,2,3,4]#Thisworks,butismoreverbosethanI'dlikenums.eachdo|i|putsiend#InJS,Icouldjustdosomethinglike:#nums.forEach(console.log)#InF#,itwouldbesomethinglike:#List.iternums(printf"%A")#InRuby,IwishIcoulddosomethinglike:nums.eachputs在Ruby中能不能做到类似的简洁?我可以只

随机推荐