zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Eingabe mit Daten aus Datenbank vergleichen

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 29.08.2011, 20:25
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 06.10.2010
Beiträge: 177
SpecialFighter befindet sich auf einem aufstrebenden Ast
Standard Eingabe mit Daten aus Datenbank vergleichen

Hallo alle zusammen

ich habe ein formular mit einem input textfeld.
dort werden Auftragsnummer eingetragen.

ich möchte das wenn der Endbenutzer mit der Eingabe der nummer startet, das dann schon überprüft wird, ob diese nummer ein der Datenbank vorhanden ist und das live angezeigt wird ohne Seiten reload.

wie ist das möglich?
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 29.08.2011, 20:38
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Stichwort Ajax.

Ein Ansatz dazu beispielsweise hier: http://xhtmlforum.de/65529-men-punkt...tml#post500927

Er nutzt das jQuery Framework, da es etwas mühsam ist, Ajax-Requests mit JavaScript-Bordmitteln zu schreiben.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 29.08.2011, 20:51
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 06.10.2010
Beiträge: 177
SpecialFighter befindet sich auf einem aufstrebenden Ast
Standard

das Beispiel wäre schon perfekt,
wenn man nicht auf den Submit button drücken müsste, sondern die Überprüfung schon bei der Eingabe geschieht
Mit Zitat antworten
  #4 (permalink)  
Alt 29.08.2011, 21:50
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 06.10.2010
Beiträge: 177
SpecialFighter befindet sich auf einem aufstrebenden Ast
Standard

also ich habe jetzt folgenden Code, der auch funktioniert:

HTML-Code:
<?php

if (isset($_GET['ajax'])) {
    if (!isset($_POST['action'])) {
        exit;
    }

    switch ($_POST['action']) {
        case 'demo1':
            $names = array('Stefan', 'Malte', 'Franz', 'Xaver');

            if (in_array($_POST['name'], $names)) {
                echo json_encode(array('found' => true));
            } else {
                echo json_encode(array('found' => false));
            }
            break;
        default:
            break;
    }

    exit;
}

?>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>

        <script type="text/javascript">
            /*<![CDATA[*/

            function ajax()
            {
                $.ajax({
                    type     : "POST",
                    async    : true,
                    url      : "?ajax",
                    cache    : false,
                    data     : { action : 'demo1',
                                 name   : $("#demo input[name='name']").val() },
                    dataType : 'json',
                    success: function(data) {
                        if (data['found'] === true) {
                            $('#result').html('<p>Name gefunden<br /><p><input type="submit" value="Submit" /></p></p>');
                        } else {
                            $('#result').html('<p>Name nicht gefunden</p>');
                        }
                    },
                    error: function() {
                        alert("Something went wrong");
                    }
                });
            }


            /*]]>*/
        </script>
    </head>

    <body>
        <form id="demo" method="post" action="">
            <p><input type="text" name="name" onkeyup="ajax()" /></p>
        </form>

        <div id="result"></div>
    </body>

</html>

das Problem ist, wenn ich diesen Code bei mir auf der Seite einbinden möchte, erhalte ich bei Eingabe immer die Meldung "Something went wrong", nur verstehe ich nicht warum.

Ich habe den PHP und JS Teil in meine header.php eingebunden und den html bereich in meine body.html


was mach ich falsch?
Mit Zitat antworten
  #5 (permalink)  
Alt 29.08.2011, 22:11
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Guck mal im Net-Tab vom Firebug (Firefox Extension) bei dem entsprechenden Ajax-Request, was dort unter „Response“ steht. Das dürfte eine PHP-Fehlermeldung sein.
Mit Zitat antworten
  #6 (permalink)  
Alt 29.08.2011, 22:19
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 06.10.2010
Beiträge: 177
SpecialFighter befindet sich auf einem aufstrebenden Ast
Standard

das hier?:


uncaught exception: [Exception... "prompt aborted by user" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: resource:///components/nsPrompter.js :: openTabPrompt :: line 462" data: no]
Mit Zitat antworten
  #7 (permalink)  
Alt 29.08.2011, 22:38
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 06.10.2010
Beiträge: 177
SpecialFighter befindet sich auf einem aufstrebenden Ast
Standard

okay habe es jetzt soweit das keine Fehlermeldung mehr beim eingeben kommt, doch funktionieren tut es trotzdem nicht.

Firebug sagt:
data is null
[Bei diesem Fehler anhalten] if (data['found'] === true) {


Hier noch mal mein Code:
HTML-Code:
<?php

if (isset($_GET['ajax'])) {
    if (!isset($_POST['action'])) {
        exit;
    }

    switch ($_POST['action']) {
        case 'check':
            $nummern = array('Stefan', 'Malte', 'Franz', 'Xaver');

            if (in_array($_POST['name'], $nummern)) {
                echo json_encode(array('found' => true));
            } else {
                echo json_encode(array('found' => false));
            }
            break;
        default:
            break;
    }

    exit;
}

?>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>

        <script type="text/javascript">
            /*<![CDATA[*/

            function ajax()
            {
                $.ajax({
                    type     : "POST",
                    async    : true,
                    url      : "?ajax",
                    cache    : false,
                    data     : { action : 'check',
                                 name   : $("#auftragsstatus input[name='auftragsnummer']").val() },
                    dataType : 'json',
                    success: function(data) {
                        if (data['found'] === true) {
                            $('#result').html('<p>Name gefunden<br /><p><input type="submit" value="Submit" /></p></p>');
                        } else {
                            $('#result').html('<p>Name nicht gefunden</p>');
                        }
                    },
                    error: function() {
                        alert("Something went wrong");
                    }
                });
            }


            /*]]>*/
        </script>
    </head>

    <body>
        <form id="auftragsstatus" method="post" action="">
            <p><input type="text" name="auftragsnummer" onkeyup="ajax()" /></p>
        </form>

        <div id="result"></div>
    </body>

</html>


Live kann man diesen hier testen: www.it-neuss.de und dann ganz unten rechts bei "Auftragsstatus"



HAT SICH ERLEDIGT:
Hatte einen schreibfehler im restlichen Code :P

Vielen Dank

Geändert von SpecialFighter (29.08.2011 um 22:42 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 31.08.2011, 12:27
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 06.10.2010
Beiträge: 177
SpecialFighter befindet sich auf einem aufstrebenden Ast
Standard

habe doch einen Fehler:



Wenn man auf der Startseite ist, klappt alles wunderbar.
ist man aber auf einer unterseite (Über mich, Service, ...)
und fängt dann mit der Eingabe beio Auftragsstatus an, erhalte ich wieder die Meldung: Something went wrong
Mit Zitat antworten
  #9 (permalink)  
Alt 31.08.2011, 13:07
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Auf den entsprechenden Unterseiten fehlt dir vermutlich das Script, das $_GET['ajax'] auswertet.
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 31.08.2011, 13:42
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 06.10.2010
Beiträge: 177
SpecialFighter befindet sich auf einem aufstrebenden Ast
Standard

kann nicht sein,
diese habe ich in der header.php eingetragen und die header.php wird bei jeder datei eingebunden
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Kann man via JQuery oder AJAX auf Daten in einer Datenbank zugreifen? tru2010 Javascript & Ajax 1 25.05.2011 00:41
zwei datenbank miteinander vergleichen Don Roberto Serveradministration und serverseitige Scripte 1 10.12.2009 12:48
PHP(PDO) Daten werden nicht in Datenbank eingetragen Ulixes Serveradministration und serverseitige Scripte 10 14.04.2009 21:20
Daten aus Datenbank entfernen b74 Serveradministration und serverseitige Scripte 4 08.02.2009 15:58
Daten per Ajax der Datenbank hinzufügen, IE bockt Nars Javascript & Ajax 10 24.08.2007 15:22


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:00 Uhr.