gpt4 book ai didi

php - jQuery 自动完成功能不起作用?

转载 作者:行者123 更新时间:2023-11-29 00:27:45 25 4
gpt4 key购买 nike

我有一个页面,用户可以在其中点击一个按钮,上面写着“添加技能”,然后它应该显示一个输入框,您可以在其中输入您的技能,它应该显示另一个输入框,您的技能等级应该出现,然后一个水平 slider ,您可以在其中选择您的技能水平。

我在数据库中有一个名为“skill_list”的表,它有两列:id 和 name。名称字段将包含数千种技能,您可以从中进行选择。

我还需要仅在数据库中存在技能时才发布表单的功能。

我想问的是如何根据我当前的代码使用 jQuery 进行自动完成,或者有人可以为我稍微重写一下吗?

目前我有以下代码,它在 firebug 控制台中没有抛出任何错误,一切都正常工作,但我真的不确定我必须做什么才能让它工作:

skills.php - auto() 函数( Controller ):

public function auto(){

$skill = $_POST['skill-0'];

$query = $this->db->query('SELECT * from skill_list WHERE name LIKE "'.$skill.'%" ORDER by name ASC LIMIT 10');

$data = array();

if ( $query && mysql_num_rows($query) ){

while( $row = mysql_fetch_array($query, MYSQL_ASSOC) ){

$data[] = array(

'label' => $row['name'],
'value' => $row['id']

);

}

}

echo json_encode($data);
flush();

}

skills.php(查看)

<form method="post" action="skills/add" id="container">  

<script>

$.fn.addSlide = function () {
return this.each(function () {
var $this = $(this),
$num = $('.slide').length++,
$name = $('<input type="text" class="inputField" id="autoskill" name="skill-' + $num + '" placeholder="What\'s your skill?"></div>'),
$slide = $('<br><div class="slide" id="slider-' + $num + '"></div><br>'),
$amt = $('<input name="amount-' + $num + '" id="amount-' + $num + '" class="inputField" readonly placeholder="Slide to select this skill level..."/><br>');
$this.append($name).append($amt).append($slide);
$slide.slider({
value: 0,
min: 0,
max: 5,
step: 1,
slide: function (event, ui) {
$amt.val(ui.value);
}
});
});
}

$('body').on('click', '.addNew', function(event) {
event.preventDefault();
$('#newFields').addSlide();
});

var count = 0;

$(document).ready(function(){

$('#autoskill').autocomplete({
source:'skills/auto', minLength:2
});

$('.addNew').click( function(event){
event.preventDefault();
$('#length').html(count);
count++;
});

$('.submitButton').click( function(event){
$('#container').append('<input type="hidden" name="count" value="' + count + '">');
});

});



</script>

<button class="addNew submitButton"> Add a Skill </button><br>

<div id="newFields"></div>

<input type="submit" class="submitButton" value="Save Skills">

</form>

希望有人能帮忙,谢谢!

最佳答案

把$name 变成这个

$name = $('<input type="text" class="inputField" id="autoskill-'+$num+'" name="skill-' + $num + '" placeholder="What\'s your skill?"></div>'),

之后

$this.append($name).append($amt).append($slide);

添加

$('#autoskill'+$num).autocomplete({
source:'skills/auto', minLength:2
});

并从你准备好的函数中完全删除自动完成行

然后进行 json 制作

 $data[] = array(

'label' => $row['name'],
'value' => $row['id']

);

进入

$data[$row['id']]=$row['name']

关于php - jQuery 自动完成功能不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18163700/

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