Php 使用jQuery UI Autocomplete获取第二个术语的值
谢谢你的回复,@ManselUK 使用下面的查找值修复了此部分 但是,当我选择一个值时,它不会设置隐藏元素的值,为什么不呢 我收到错误:未捕获TypeError:当我从自动完成中选择值时,无法将属性“value”设置为null。。 输入5个字符时调用的Php代码: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
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!