2016-03-22 15 views
0

ich eine Wordpress-Seite mit einigen benutzerdefinierten PHP-Programmierung haben. Ich weiß nicht, welche Änderungen hat, aber ich habe bemerkt, dass mein Autocomplete-Feld nicht mehr richtig funktioniert.jQuery Autocomplete funktioniert nur mit Großbuchstaben

Ich habe ein Formularfeld, in dem ich in Spielernamen eingeben und einmal drei Zeichen eingegeben, ich abrufen aus einer Liste von möglichen Übereinstimmungen aus der Datenbank zu wählen. Ich habe heute bemerkt, dass es immer noch funktioniert, aber nur für den Fall, verwende ich alle UPPER Buchstaben CASE, wenn sie in player2 Feld eingeben. Wenn ich normale Buchstaben verwende, bekomme ich immer die ersten 10 Datensätze aus der Datenbank, unabhängig vom Suchbegriff. Seltsam!!!

Hier ist meine Form jquery Code:

<script type="text/javascript"> 
    jQuery(document).ready(function($){ 
     $('#player2').autocomplete({ 
      source:'/wp-content/themes/canvas-child/suggest-pid2.php', 
      minLength:2, 
      autoFocus: true, 
      select: function (event, ui) { 
        // Set autocomplete element to display the label 
        this.value = ui.item.playername; 

        // Store value in hidden field 
        $('#PlayerID').val(ui.item.value); 

        // Prevent default behaviour 
        return false; 
      } 
     }); 
    }); 
</script> 

Und hier ist mein Suchcode Datensätze zurück von db zu bekommen:

<?php 

// get search term (player name or surname) 
$term = $_REQUEST['term']; 

if (isset($term)) {  


    $dblink = mysql_connect('localhost', 'un', 'pw') or die(mysql_error()); 
    mysql_select_db('db'); 
    $sql = "SELECT " . 
      "P.PlayerID, P.PlayerName, P.PlayerSurname, C.CityName, " . 
      "DATE_FORMAT(P.PlayerDateOfBirth, '%Y') AS PlayerYearOfBirth " . 
     "FROM players P " . 
      "LEFT JOIN cities C ON C.CityID = P.CityID " . 
     "WHERE P.PlayerName LIKE '" . $term . "%' " . 
      "OR P.PlayerSurname LIKE '" . $term . "%' " . 
     "ORDER BY P.PlayerName, P.PlayerSurname ASC LIMIT 0,10;"; 


    // Important - UTF-8!!! 
    mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $dblink); 
    $rs = mysql_query($sql, $dblink); 
    $data = array(); 
    if ($rs && mysql_num_rows($rs)) {  
     while($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {   
      $data[] = array(   
      'label' => $row['PlayerName'] .' '. $row['PlayerSurname'] .' ('. $row['PlayerYearOfBirth'] .'), '. $row['CityName'] ,    
      'value' => $row['PlayerID'] ,    
      'playername' => $row['PlayerName'] .' '. $row['PlayerSurname']   
      );  
      }} 
    echo json_encode($data); 
    flush(); 

} 
?> 

Irgendwelche Ideen?

Antwort

0

ich die Datei von Grund auf neu zu machen, und jetzt ist es funktioniert. Ich habe keine Ahnung, was falsch war, aber es sieht so aus, als wäre die PHP-Datei beschädigt. Arbeite jetzt.

0

Sie könnten konvertieren Sie Ihre Zeichenfolge in Großbuchstaben die Abfrage

+0

Ich habe versucht, aber das funktioniert nicht. Es sieht so aus, als wenn der Suchbegriff in Kleinbuchstaben eingegeben wird und als leere Zeichenfolge erkannt wird. – gdolenc