gpt4 book ai didi

javascript - jQuery 表单,存在检查

转载 作者:行者123 更新时间:2023-11-29 02:57:13 25 4
gpt4 key购买 nike

所以我正在创建一个简单的表单,使用 jQuery 检查用户输入的值是否存在于我的数据库中。到目前为止一切正常,但我发现自己陷入了下一部分。

为了便于解释,我将仅展示我正在尝试实现的目标的示例。对于这个例子,我将是“weeden”

weeden 在我的数据库的公司表中的 ID 为 255。

  1. 如果用户在客户端字段中输入“weeden”
  2. 在客户字段的右侧(在网络表单上),文本“weeden is unavailable”将出现

我希望发生的是:“ID 255 不可用”

这是相关代码。

HTML 格式

<form action="addrecord.php" method="post" autocomplete="off"/>  
<div class="form-field">
<label for="client">Client: </label>
<input type="text" name="client" id="client" class="check-exists" data-type="client" placeholder="#">
<span class="check-exists-feedback" data-type="client"></span>
</div>

jQuery 函数

$.fn.existsChecker = function(){
return this.each(function(){
var interval;

$(this).on('keyup', function(){
var self = $(this),
selfType = self.data('type'),
selfValue,
feedback = $('.check-exists-feedback[data-type=' + selfType + ']');

if(interval === undefined){
interval = setInterval(function(){

if(selfValue !== self.val()){
selfValue = self.val();

if(selfValue.length >= 1){
$.ajax({
url: 'check.php',
type: 'get',
dataType: 'json',
data: {
type: selfType,
value: selfValue
},
success: function(data){
if(data.exists !== undefined){
if (data.exists === true){
feedback.text(selfValue + ' is already taken.');
}else {
feedback.text(selfValue + ' is available');
}
}
},
error: function(){

}
});
}
}
}, 1000);
}
});
});
};

Check.php

$db= new PDO('mysql:host=host;dbname=mydb', 'user', 'pass');

if(isset($_GET['type'], $_GET['value'])){

$type = strtolower(trim($_GET['type']));
$value= trim($_GET['value']);

$output = array('exists' => false);


if(in_array($type,
array('client')
)
){

switch($type){
case 'client':
$check = $db->prepare("
SELECT COUNT(*) AS count
FROM company
WHERE name = :value
");
break;

$check->execute(array('value'=> $value));
$output['exists'] = $check->fetchObject()->count ? true: false;
echo json_encode($output);

如有任何帮助/建议,我们将不胜感激。我认为自己是初学者,这是我第一次从事网络项目。

提前澄清一下,同一个网络表单上还有许多其他输入字段,例如:电子邮件、日期、姓名、姓名等。我希望我的问题足够清楚。谢谢

最佳答案

您必须将查询更改为如下内容:

$check = $db->prepare("
SELECT id, COUNT(*) AS count
FROM company
WHERE name = :value
");

我假设您在 company 表中的主键字段名为 id

最后将 id 存储在 output-Array

$result = $check->fetchObject();
$output['exists'] = $result->count ? true: false;
$output['id'] = $result->id;

然后你可以像这样输出id:

if (data.exists === true){
feedback.text('ID ' + data.id + ' is unavailable');
}

关于javascript - jQuery 表单,存在检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29435752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com