Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] jQuery Autocomplete - nur Begriffe aus Vorschlagsliste erlauben?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] jQuery Autocomplete - nur Begriffe aus Vorschlagsliste erlauben?

    Hallo Freunde,

    ich nutze jQuery-Autocomplete um ein Feld mit einem Städtenamen zu füllen. Die Städtenamen liegen in einer Datenbank vor.

    Format der Städte:
    Berlin (DE)
    Hamburg (DE)
    Bern (CH)
    Wien (AT)

    Ich möchte jetzt gerne erreichen, dass das Feld ausschließlich Einträge annimmt welche genau so in der Datenbank vorliegen und mit der Datenbank übereinstimmen.

    Bsp:
    Richtig = Berlin (DE)
    Falsch = Berlin
    Falsch = berlin
    Falsch = Ber lin
    usw.

    Bei Falschangabe sollte eine Meldung erscheinen und das Feld wieder gelöscht werden bzw. weiterhin "Required" sein.

    Leider weiß ich als PHP/SQL/Js-Noob nicht wie man soetwas realisieren könnte.

    Wäre vielleicht von Euch jemand so nett und könnte mir das helfen?

    Der verwendete Code lautet im Moment folgendermaßen.

    Seite mit dem Autocomplete-Feld
    PHP-Code:
    <html><head>
      <
    meta http-equiv="content-type" content="text/html; charset=UTF-8" />
     </
    head><body>

    <
    p><input id="autocomplete" type='text'></p>

    <
    script type="text/javascript">
    function 
    selectItem(li) {
        return 
    false;
    }
    function 
    formatItem(row) {
        return 
    row[0] + "<i>" row[1] + "</i>";
    }
    $(
    document).ready(function() {
        $(
    "#autocomplete").autocomplete("1.php", {
            
    minChars:2,
    matchSubset:1,
    matchContains:1,
    cacheLength:10,
            
    onItemSelect:selectItem,
            
    selectOnly:1
        
    });
    });
    </script></body></html> 

    Und hier der Code für die PHP-Datei (SQL-Abfrage)
    PHP-Code:
    <?php
    header
    ('Content-Type: text/html; charset=utf-8');

         
    //connection information
            
    $host "localhost";
            
    $user "root";
            
    $password "pass";
            
    $database "projekt";
            
    $param $_GET["term"];

          
    //make connection
           
    $server mysql_connect($host$user$password);
           
    $connection mysql_select_db($database$server);

    mysql_query('set character set utf8;');

     
    $res mysql_query("SELECT city FROM zipcodes WHERE city LIKE '".$_GET['q']."%' ");
     while(
    $row=mysql_fetch_object($res)) {
      echo 
    $row->city."\n";
     }

     
    ?>
    Über Hilfe würde ich mich freuen.
    Gruß Matthias


  • #2
    Von wievielen Einträgen reden wir denn hier?
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Zitat von Berliner030 Beitrag anzeigen
      Ich möchte jetzt gerne erreichen, dass das Feld ausschließlich Einträge annimmt welche genau so in der Datenbank vorliegen und mit der Datenbank übereinstimmen.
      Das ist nicht Aufgabe der automatischen Vervollständigung sondern der Validierung, Dafür gibt es ebenfalls ein jQuery-Plugin, bedenke dabei aber, das du auf dem Server erneut validieren musst.
      Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

      Kommentar


      • #4
        Das ist nicht Aufgabe der automatischen Vervollständigung sondern der Validierung
        Ja genau - aber ich weiß nicht wie man die Validierung umsetzen kann. Solch eine Möglichkeit suche ich.

        Von wievielen Einträgen reden wir denn hier?
        Ca. 10000 - deutsche + schweizer + österreichische Städtenamen.

        Ist da was zu machen - irgendwie?

        Ich habe selbst leider überhaupt keine Ahnung wo man da ansetzen müsste.

        Gruß Matthias

        Kommentar


        • #5
          Nachtrag:

          Eigentlich müsste man ja "nur" folgendes irgendwie coden.

          Schaue nach was im Feld eingetragen wurde
          Vergleiche Wert mit Datenbank
          Wenn Wert so in Datenbank = True
          Wenn Wert nicht in Datenbank = false
          etc.

          Grübel!

          Kommentar


          • #6
            Zitat von Berliner030 Beitrag anzeigen
            Ca. 10000 - deutsche + schweizer + österreichische Städtenamen.
            Wenn es bedeutend weniger wären, dann könntest du sie im JavaScript-Code mitsenden. Bei 10000 ist das aber nicht praktikabel. Deshalb musst du den Server fragen, ob da im Moment etwas gültiges drinsteht und entsprechend reagieren.

            Zitat von Berliner030 Beitrag anzeigen
            Ist da was zu machen - irgendwie?
            Ja. Soll ich dir jetzt ein jQuery-Plugin für Validierung raussuchen oder schaffst du das alleine?
            Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

            Kommentar


            • #7
              Soll ich dir jetzt ein jQuery-Plugin für Validierung raussuchen oder schaffst du das alleine?
              Nein - musst Du nicht.

              Mir stellte sich überhaupt erstmal die Frage wie man soetwas umsetzen kann. Mit JS/jQuery oder doch mit PHP.

              Für jQuery gibt es ja diverse Validation-Scripte z.B. http://plugins.jquery.com/project/validate aber wie man das in Zusammenhang mit der SQL-Abfrage hinbekommt, ist mir schleierhaft.

              Ich denke ich muss das wohl im Jobforum auschreiben da ich das alleine nicht gelöst bekomme. Ich verfüge über keine Programmierkentnisse - weder für JS noch für PHP.

              Danke und Gruß
              Matthias

              Kommentar


              • #8
                Zitat von Berliner030 Beitrag anzeigen
                Mir stellte sich überhaupt erstmal die Frage wie man soetwas umsetzen kann. Mit JS/jQuery oder doch mit PHP.
                Erst ein mal mit PHP. Validierung mit JS allerhöchstens danach aus Usability-Gründen.
                Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

                Kommentar


                • #9
                  Falls das jquery autocomplete von bassistance ist, lies doch mal die Doku.
                  PHP-Code:
                  mustMatchtrue 
                  und du bist glücklich
                  I like cooking my family and my pets.
                  Use commas. Don't be a psycho.
                  Blog - CoverflowJS

                  Kommentar


                  • #10
                    Mensch rudygotya,

                    das ist ja genau das was ich haben will - Super!

                    Ich wollte gerade eben das Problem im Jobforum posten und nun geht das so einfach. Juchu

                    Ich verbeuge mich und bedanke mich vielmals für den Hinweis.

                    Schulter klopf!!!!!!!

                    Schöne Grüße
                    Matthias

                    Kommentar

                    Lädt...
                    X