tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
342
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von creativeheadz
    creativeheadz creativeheadz ist offline Mitglied Gold
    Registriert seit
    May 2005
    Beiträge
    198
    Hallo,
    ich möchte gerne eine Bankleitzahl auf Richtigkeit prüfen.

    Dazu habe ich in der Datenbank alle echten Bankleitzahlen hinterlegt.

    Nun habe ich ein Formular das wie folgt aufgebaut ist:

    HTML-Code:
    <div id="success">DANKE</div>
    		  <div id="ecbox" style="display:none;">
                <form id="ec" name="ec" method="post">
    			 <table width="100%" border="0" cellspacing="0" cellpadding="5">
    			  <tr>
    				<td width="160">Kontoinhaber</td>
    				<td><?php echo $fname.' '.lname; ?></td>
    				<td class="status"></td>
    			  </tr>
    			  <tr>
    				<td>Kontonummer</td>
    				<td><input type="text" name="ec_account_number" class="input"  /></td>
    				<td class="status"></td>
    			  </tr>
    			  <tr>
    				<td>Bankleitzahl</td>
    				<td><input type="text" name="ec_account_code" id="ec_account_code" class="input"  /></td>
    				<td class="status"></td>
    			  </tr>
    			  <tr>
    				<td>&nbsp;</td>
    				<td>
    				<input type="hidden" name="ec_amount" />
    				<input type="hidden" name="ec_user_id" />
    				<input type="hidden" name="ec_product_id" />
    				<input type="hidden" name="ec_product_code" />
    				
    				<input type="submit" name="submit" id="submit" value="Bezahlung senden"  class="button"/></td>
    				<td class="status"></td>
    			  </tr>
    			</table>
    			</form>
              </div>
    Dann nutze ich ein Java Script um die Bankleizhal zu überprüfen:

    HTML-Code:
    <script id="validate" type="text/javascript">
    $(document).ready(function() {
    	// validate signup form on keyup and submit
    	var validator = $("#ec").validate({
    		rules: {
    
    			ec_account_code: {
    				required: true,
    				digits: true,
    				remote: "/alpha/check_account_code/send/"
    			}
    			
    		},
    		
    		messages: {
    
    			ec_account_code: {
    				required: 'Dies ist ein Pflichtfeld.',
    				digits: "Bitte nur Zahlen eingeben.",
    				remote: "Diese Bankleitzahl ist nicht korrekt."
    
    			}
    		},
    		// the errorPlacement has to take the table layout into account
    		errorPlacement: function(error, element) {
    			if ( element.is(":radio") )
    				error.appendTo( element.parent().next().next() );
    			else if ( element.is(":checkbox") )
    				error.appendTo ( element.next() );
    			else
    				error.appendTo( element.parent().next() );
    		},
    		// specifying a submitHandler prevents the default submit, good for the demo
    		submitHandler: function() {
            
                                    var dataStr = $("#ec").serialize();
                                    
                                            $.ajax({
                                                    type: "POST",
                                                    url: "/alpha/ec/send/",
                                                    data: dataStr,
                                                    success: function(del){
                                                            $('#ecbox').slideUp(500, function() {
    														  $('#success').slideDown(500);
    														});
                                                    }
                                    });
                            return false; 
    		
    		},
    		// set this class to error-labels to indicate valid fields
    		success: function(label) {
    			// set &nbsp; as text for IE
    			label.html("&nbsp;").addClass("checked");
    		}
    	});
    	
    
    
    });
    </script>
    Der PHP Code zum abgleichen sieht wie folgt aus:

    PHP-Code:
    include ("../settings.php");
    include (
    "../connect.php");


    $ec_account_code trim(strtolower($_POST['ec_account_code']));

    $ec_account_code mysql_escape_string($ec_account_code);

    $sql "SELECT * FROM bank WHERE BANKLEITZAHL='".$ec_account_code."' LIMIT 1";

    $query mysql_query($sql);

    $num mysql_num_rows($query);

    if (
    $num 0) {
       return 
    true;
    } else
       return 
    false

    Das Feld wird erfolgreich auf Zahlen geprüft, und es wird auch als Pflichtfeld markiert. Leider gibt mir das Skript grundsätzlich aus: "Diese Bankleitzahl ist nicht korrekt." Auch wenn ich eine korrekte Bankleitzahl eingebe. Wo mache ich einen Fehler?

    Gruß
     

  2. #2
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Falls du das hier benutzt http://bassistance.de/jquery-plugins...in-validation/ versuch es mal mit $_GET['ec_account_code'])
     

  3. #3
    Avatar von creativeheadz
    creativeheadz creativeheadz ist offline Mitglied Gold
    Registriert seit
    May 2005
    Beiträge
    198
    Schade. Klappt leider immer noch nicht. Bzw. Jetzt gibt mir das Script nichtmal mehr die Meldung "Diese Bankleitzahl ist nicht korrekt." zurück.
     

  4. #4
    Avatar von creativeheadz
    creativeheadz creativeheadz ist offline Mitglied Gold
    Registriert seit
    May 2005
    Beiträge
    198
    So ich habs nun hinbekommen.

    Hier die Lösung:

    HTML-Code:
    <script id="validate" type="text/javascript">
    $(document).ready(function() {
    
    	jQuery.validator.addMethod("check_account_code", function(ec_account_code) {
    	   var isSuccess = false;
    	   $.ajax({ type: "POST",
    	   			url: "/alpha/check_account_code/send/",
    				data: "ec_account_code=" + ec_account_code,
    				async: false,
    				success:
    					function(msg) { isSuccess = msg === "TRUE" ? true : false }
    			  });
    		return isSuccess;
    	},"");
    
    
    
    	var validator = $("#ec").validate({
    		rules: {
    
    			ec_account_code: {
    				required: true,
    				digits: true,
    				check_account_code: true
    			}
    			
    		},
    		
    		messages: {
    
    			ec_account_code: {
    				required: 'Dies ist ein Pflichtfeld.',
    				digits: "Bitte nur Zahlen eingeben.",
    				check_account_code: "Diese Bankleitzahl ist nicht korrekt."
    
    
    			}
    		},
    		// the errorPlacement has to take the table layout into account
    		errorPlacement: function(error, element) {
    			if ( element.is(":radio") )
    				error.appendTo( element.parent().next().next() );
    			else if ( element.is(":checkbox") )
    				error.appendTo ( element.next() );
    			else
    				error.appendTo( element.parent().next() );
    		},
    		// specifying a submitHandler prevents the default submit, good for the demo
    		submitHandler: function() {
            
                                    var dataStr = $("#ec").serialize();
                                    
                                            $.ajax({
                                                    type: "POST",
                                                    url: "/alpha/ec/send/",
                                                    data: dataStr,
                                                    success: function(del){
                                                            $('#ecbox').slideUp(500, function() {
    														  $('#success').slideDown(500);
    														});
                                                    }
                                    });
                            return false; 
    		
    		},
    		// set this class to error-labels to indicate valid fields
    		success: function(label) {
    			// set &nbsp; as text for IE
    			label.html("&nbsp;").addClass("checked");
    		}
    	});
    	
    
    
    });
    </script>
    Und hier der PHP Code

    PHP-Code:
    include ("../settings.php");
    include (
    "../connect.php");


    $ec_account_code trim(strtolower($_REQUEST['ec_account_code']));

    $ec_account_code mysql_escape_string($ec_account_code);

    $sql "SELECT * FROM bank WHERE BANKLEITZAHL='".$ec_account_code."' LIMIT 1";

    $query mysql_query($sql);

        if (
    mysql_num_rows($query)) {
        
            echo 
    "TRUE";   
                                                                                    
        } else {
        
            echo 
    "FALSE"
            
        } 
     

Ähnliche Themen

  1. Betrag auf Richtigkeit prüfen (preg_match)
    Von kenguruh2002 im Forum PHP
    Antworten: 7
    Letzter Beitrag: 17.08.11, 11:51
  2. Gleichung auf Richtigkeit prüfen
    Von ChrisEU im Forum PHP
    Antworten: 3
    Letzter Beitrag: 09.08.09, 13:40
  3. Prüfen, ob MySQL Datensatz der selbe beim Autorefresh
    Von lisali im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 01.08.09, 08:31
  4. Email auf Richtigkeit prüfen
    Von sh0x im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 09.02.05, 17:17
  5. Preis Angabe auf richtigkeit Prüfen
    Von eViLaSh im Forum PHP
    Antworten: 8
    Letzter Beitrag: 08.06.04, 18:38