2 개의 텍스트 상자에 하나의 텍스트 상자가 선택되면 그 텍스트 상자에 값이 저장되는 자동 완성 텍스트 상자를 구현하려고합니다. 예를 통해 더 쉽게 설명 할 수 있어야한다고 생각합니다.두 필드가 자동 완성되지 않습니다.
나는 2 개의 텍스트 상자가 있으며 동일한 테이블/데이터베이스에서 가져온 자동 완성 기능이 있습니다. 예를 들어, 열 foo가 있고 foo와 foo2 및 bar와 bar2가 포함 된 열 막대가 들어 있습니다. 따라서이 텍스트 상자에는 foo 열의 모든 것이 있고 다른 열의 열 바는 무엇이든 가지고 있습니다. textbox1에서 foo를 선택하면 textbox2에 bar가 생깁니다. textbox2에서 bar2를 선택하면 textbox1에 foo2가 표시됩니다.
내가 만든 의미, 나는 다음과 같은 자바 스크립트를
<script>
$('#school_id').autocomplete({
source: function(request, response) {
$.ajax({
url : 'ajaxi.php',
dataType: "json",
method: 'post',
data: {
name_startsWith: request.term,
type: 'school_table',
row_num : 1
},
success: function(data) {
response($.map(data, function(item) {
var code = item.split("|");
return {
label: code[0],
value: code[0],
data : item
}
}));
}
});
},
autoFocus: true,
minLength: 0,
select: function(event, ui) {
var names = ui.item.data.split("|");
$('#school_name').val(names[1]);
}
});
</script>
HTML
<body>
<form id='students' method='post' name='students' action='test.php'>
<input class="form-control" type='text' id='school_id' name='school_id'/>
<input class="form-control" type='text' id='school_name' name='school_name'/>
</form>
</body>
스크립트 소스
<link rel="stylesheet" type="text/css" href="css/main.css" />
<link rel="stylesheet" type="text/css" href="css/jquery-ui.min.css" />
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui.min.js"></script>
과 ajaxi.php 파일이 희망
if($_POST['type'] == 'school_table'){
$row_num = $_POST['row_num'];
$name = $_POST['name_startsWith'];
$query = "SELECT school_id, school_name FROM school where school_id LIKE '".$name."%'";
$result = mysqli_query($con, $query);
$data = array();
while ($row = mysqli_fetch_assoc($result)) {
$name = $row['school_id'].'|'.$row['school_name'].'|'.$row_num;
array_push($data, $name);
}
echo json_encode($data);
입력 할 때 아무 것도 발생하지 않습니다. 도움에 대한 사전 감사.
나는 이것을 here에서 얻었다. 나는 각각이 무엇을하는지 이해하려고 노력했으나 나는 여전히 그것을 작동시키지 못한다.
난 그냥 눈치보다 알이 자습서를 참조하십시오 그 school_id_1에서 javascript는 textboxes (school_id)에서 다르기 때문에 변경되었습니다. 아직도 작동하지 않아서 나는 그것들을 되돌려 놓았다. – ThisIsABird