Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自动完成仅允许来自数据库的选项值_Javascript_Php_Jquery - Fatal编程技术网

Javascript 自动完成仅允许来自数据库的选项值

Javascript 自动完成仅允许来自数据库的选项值,javascript,php,jquery,Javascript,Php,Jquery,如何仅允许输入数据列表选项的选项值。我看到一些基于javascript变量允许值的脚本,但如果选项值来自数据库,该怎么办?如何在下面的脚本上更改有效选项的值取决于选项列表中可用的值?在我的下拉列表中,下面的主要内容是使用ajax将值发送到input list='languages' 如图所示,若我选择供应商圆珠笔、闪存铅笔等,则只允许输入 Drop1 <?php $combo = $mysqli->query("SELECT * FROM category GROUP B

如何仅允许输入数据列表选项的选项值。我看到一些基于javascript变量允许值的脚本,但如果选项值来自数据库,该怎么办?如何在下面的脚本上更改
有效选项的值取决于选项列表中可用的值?在我的下拉列表中,下面的主要内容是使用ajax将值发送到
input list='languages'

如图所示,若我选择供应商圆珠笔、闪存铅笔等,则只允许输入

 Drop1
 <?php
    $combo = $mysqli->query("SELECT * FROM category GROUP BY cat_code ORDER BY id");
    $option = '';
     while($row = $combo->fetch_assoc())
        {
        $option .= '<option value = "'.$row['cat_code'].'">'.$row['category'].'</option>';
        }
    ?>

<select id="main" name="main">
<option value="" disabled="disabled" selected="selected">Choose</option>
<?php echo $option; ?>
</select>

<input list="languages" id="list">
<datalist id="languages">
  <option value=""></option>
</datalist>

<input type="submit" name="submit" value="Submit"/>
<script type="text/javascript">
$('#main').change(function(){
$.ajax({
url : 'getajax.php',
data :{mainlist_id : $(this).val()},
dataType:'html',
type:'POST',
success:function(data){
$('#languages').html(data);
}
});
if ($(this).val() != '') {
    $("#list").val('');
} else {
    //here you can specify what to do if the value is NOT 
}
});
</script>

<script>
var validOptions = ["Bold", "Normal", "Default", "100", "200"]
previousValue = "";

$('#list').autocomplete({
    autoFocus: true,
    source: validOptions
}).keyup(function() {
    var isValid = false;
    for (i in validOptions) {
        if (validOptions[i].toLowerCase().match(this.value.toLowerCase())) {
            isValid = true;
        }
    }
    if (!isValid) {
        this.value = previousValue
    } else {
        previousValue = this.value;
    }
});
</script>

Drop1
选择
$('#main').change(function(){
$.ajax({
url:'getajax.php',
数据:{mainlist_id:$(this.val()},
数据类型:'html',
类型:'POST',
成功:功能(数据){
$(“#语言”).html(数据);
}
});
if($(this.val()!=“”){
$(“#列表”).val(“”);
}否则{
//在这里,您可以指定如果该值不是
}
});
var validOptions=[“粗体”、“正常”、“默认”、“100”、“200”]
先前的值=”;
$(“#列表”)。自动完成({
自动对焦:对,
资料来源:有效期
}).keyup(函数(){
var isValid=false;
对于(有效期内的i){
if(validOptions[i].toLowerCase().match(this.value.toLowerCase())){
isValid=true;
}
}
如果(!isValid){
this.value=以前的值
}否则{
previousValue=this.value;
}
});

您可以使用远程数据源自动完成

您可以绑定响应事件以更新validOptions数组