Ich versuche, eine Autocomplete-Textbox auf 2 Textfelder zu implementieren, dass, wenn einer von ihnen ausgewählt ist, ein Wert in diesem Textfeld platziert wird. Ich denke, ich sollte es einfacher mit einem Beispiel erklären können.Autocomplete zwei Felder nichts passiert
Ich habe 2 Textfelder und sie haben Autovervollständigung, die aus der gleichen Tabelle/Datenbank stammen. Zum Beispiel habe ich eine Spalte foo und es enthält foo und foo2 und Spaltenleiste, die bar und bar2 enthält. Also dieses Textfeld hat was auch immer Spalte foo hat und das andere hat was auch immer Spaltenleiste hat. Wenn ich foo aus textbox1 wähle, hat textbox2 einen Balken. Wenn ich bar2 aus textbox2 wähle, hat textbox1 foo2.
Ich hoffe, dass Sinn gemacht, ich habe folgendes Javascript
<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>
Skript Quellen
<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>
und die ajaxi.php Datei
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);
Wenn ich versuche, etwas einzugeben, passiert nichts. Vielen Dank für die Hilfe.
Ich habe dies von here. Ich habe versucht zu verstehen, was jeder tut, aber ich schaffe es immer noch nicht zu arbeiten.
Ich habe gerade bemerkt, dass die school_id_1 in Das Javascript war anders in den Textboxen (school_id), also änderte ich diese auch. Funktioniert immer noch nicht, also habe ich sie zurück zu ihnen gemacht. – ThisIsABird