如何在MySQL数据库中保存jquery keyup()的每个输入值?

时间:2016-01-26 22:58:28

标签: javascript php jquery mysql ajax

我正在为我的大学创建一项研究,并希望将用户在密码字段中输入的每个输入值保存到数据库中。

例如: 用户输入"你好"作为密码。我想保存','他'' hel'' hell'至少'你好'。如果他删除了我想要保存的最后一个角色:' hell'。

目前我正在保存最后一个值'你好'像这样:

startpage.php:

<form action="?atn=validatePassword" method="post" class="form mg_top">
   <label id="enterPW" for="inp_list_generatedPassword">Select or enter Password:</label>
   <input id="inp_list_generatedPassword" name="password" value="" type='password' class="form-control talign_center input" placeholder="Select or enter password">
</form>

ViewController.php:

private function validatePassword(){        
  $password = $_POST["password"];
}

要获取输入,我有一个js文件,我正在使用keyup事件:

startpage.js:

$('#inp_list_generatedPassword').keyup(function() {
var input = this.value;
$('#output').val(input);
$.ajax({
    url: "startpage.php",
    data: {
        'keyValue' : input
    },
    dataType: 'json',
   });
});

在ViewController.php中我添加了这一行$currentPW = $_GET["keyValue"]; 但它不起作用。我收到一个错误:未定义的索引:ViewController.php中的keyValue

此外,这不会保存每个输入。它只是在按下按钮时保存最后输入的字符串:<button id="matchPassword" class="btn btn-primary form-control">Submit</button>

如何保存所有步骤?在我的代码中或者在Ajax调用中是否存在错误?

1 个答案:

答案 0 :(得分:0)

当然,如果有人输入非常奇怪的内容,这会给你的数据库带来巨大的负担。

您需要在PHP脚本中使用缓存,但这不是问题的一部分。

解决方案:

我尝试了它并且它适用于此:

$(document).on('keyup', '#inp_list_generatedPassword', function() {
    var input = this.value;
    $('#output').text(input);
});

见这里:https://jsfiddle.net/cj1367eo/

现在您可以根据需要使用“输入”变量。 我也更喜欢使用“$ .post”,如下所示:http://api.jquery.com/jquery.post/

注意,未经测试的代码:

$.post( "api.php", { data: input } );

现在您可以使用$ _POST [“data”]来获取您的输入。

其他信息:

但正如我之前所说:使用缓存!

否则你的系统会遇到麻烦。

使用每N分钟或条目写入数据库的全局PHP变量就足够了。