Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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
Php 使用jQuery UI Autocomplete获取第二个术语的值_Php_Jquery_Jquery Ui_Jquery Autocomplete - Fatal编程技术网

Php 使用jQuery UI Autocomplete获取第二个术语的值

Php 使用jQuery UI Autocomplete获取第二个术语的值,php,jquery,jquery-ui,jquery-autocomplete,Php,Jquery,Jquery Ui,Jquery Autocomplete,谢谢你的回复,@ManselUK 使用下面的查找值修复了此部分 但是,当我选择一个值时,它不会设置隐藏元素的值,为什么不呢 我收到错误:未捕获TypeError:当我从自动完成中选择值时,无法将属性“value”设置为null。。 输入5个字符时调用的Php代码: try{ $occupation = mysql_real_escape_string($_GET['term2']); ////// echo 'term 2 '. $occupation

谢谢你的回复,@ManselUK

使用下面的查找值修复了此部分

但是,当我选择一个值时,它不会设置隐藏元素的值,为什么不呢

我收到错误:未捕获TypeError:当我从自动完成中选择值时,无法将属性“value”设置为null。。

输入5个字符时调用的Php代码:

   try{

        $occupation = mysql_real_escape_string($_GET['term2']); //////
        echo 'term 2 '. $occupation;
        ///////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////
        $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );  
        $sth = $dbh->prepare(
        'SELECT occupID, occupVal From Occupation WHERE occupVal = ?');
        $sth->bindParam(1, $occupation);
        $sth->execute();
        $jsonArray = array();
        while ($result = $sth->fetch(PDO::FETCH_ASSOC)) {
         $jsonArray[] = array(
              'label' => $result['occupVal'], 
              'value' => $result['occupVal']."|".$result['occupID']); 
        }

        print json_encode($jsonArray); // json encode that array
    } // try   
代码的catch{}块将向文件发送错误,但该文件中没有错误

HTML表单输入:

<label for="occup">What is your occupation? <br /></label>
                            <div class="ui-widget">
                                <input id="occup" type="text"  name="term2" value="e.g. Carpenter, Developer, etc" onFocus="clearText(this)" /><br />
                                <input type="hidden" id="actualOccup" name="actualOccupval" value="" />
使用以下命令:

source: function(request, response) {
   $.getJSON("../src/php/registration/getFanOccupation.php", { term2: request.term }, response);
}
在第二个自动完成

从文档中:

一个请求对象,具有一个名为term的属性,该属性引用 设置为文本输入中当前的值。例如,当用户 在城市字段中输入new yo,自动完成项将等于 新哟

完整代码:

$('input#occup').autocomplete({
    source: function(request, response) {
       $.getJSON("../src/php/registration/getFanOccupation.php", { term2: request.term }, response);
    },
    minLength: 4,
    select: function(event, args){
        event.preventDefault();
        var joinedValues = args.item.value;
        var id = joinedValues.split("|")[0];
        var occupValAndId= joinedValues.split("|")[1];
        $('#actualOccupval').val(occupValAndId); 
        $('#occup').val(id);
    }
});
注意:还将document.getElementById'blah'.value=更改为$'blah'.val,因为您已经在使用jQuery

使用以下命令:

source: function(request, response) {
   $.getJSON("../src/php/registration/getFanOccupation.php", { term2: request.term }, response);
}
在第二个自动完成

从文档中:

一个请求对象,具有一个名为term的属性,该属性引用 设置为文本输入中当前的值。例如,当用户 在城市字段中输入new yo,自动完成项将等于 新哟

完整代码:

$('input#occup').autocomplete({
    source: function(request, response) {
       $.getJSON("../src/php/registration/getFanOccupation.php", { term2: request.term }, response);
    },
    minLength: 4,
    select: function(event, args){
        event.preventDefault();
        var joinedValues = args.item.value;
        var id = joinedValues.split("|")[0];
        var occupValAndId= joinedValues.split("|")[1];
        $('#actualOccupval').val(occupValAndId); 
        $('#occup').val(id);
    }
});

注意:还将document.getElementById'blah'.value=更改为$'blah'.val,因为您已经在使用jQuery

@ManselUK-我已经更新了我的代码,它在输入诸如Casino之类的单词时不会输出任何内容。你介意看一下我所采取的错误检查步骤,或者修改一下你的答案吗?我真的很感激它出色的工作,能够自己调试。谢谢@ManseUK@ManselUK-我已经更新了我的代码,它不会在输入诸如Casino之类的单词时输出任何内容。你介意看一下我所采取的错误检查步骤,或者修改一下你的答案吗?我真的很感激它出色的工作,能够自己调试。谢谢@ManseUK!