MySQL Datensatz auf Richtigkeit prüfen

creativeheadz

Erfahrenes Mitglied
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:
<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:
<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:
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ß
 
Schade. Klappt leider immer noch nicht. Bzw. Jetzt gibt mir das Script nichtmal mehr die Meldung "Diese Bankleitzahl ist nicht korrekt." zurück.
 
So ich habs nun hinbekommen.

Hier die Lösung:

HTML:
<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:
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"; 
		
    }
 
Zurück