2016-09-16 3 views
1

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.

+0

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

Antwort

0

Schritt 1: Überprüfen Sie bitte alle notwendigen Skripte in HTML-Datei ...

Schritt 2 geladen werden: Überprüfen Sie ist es JavaScript-Fehler vorhanden sind, Wenn ja, bitte diese JavaScript-Fehler löschen ...

Schritt 3: Bitte fügen Sie dieses Skript an der Unterseite Ihrer hTML-Datei ...

<script> 
     $(document).ready(function(){ 
      $('#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> 

Schritt 4: Nächste Kontrolle, wenn man etwas macht es ajax-Aufruf macht Typ-Datei ajaxi.php ..

Schritt 5: Falls ja Antwort von Ihnen Ajax Anruf abfragen ...

ich Ihr klebte Skript alles fein karierten ..

dieses Tutorial Siehe weiß mehr http://www.smarttutorials.net/jquery-autocomplete-multiple-fields-using-ajax-php-mysql-example/