mit onBlur MySQL DB abgleichen?

DistanZ

Grünschnabel
Hallo Leute,

ich habe ein Problem und zwar möchte ich sobald das Feld "Username" ausgefüllt wurde und das Feld verlassen wird also mit dem Befehl "onBlur" überprüfen lassen ob der eingegebene Username schon in der Datenbank vorhanden ist! nun habe ich mir das folgendermaßen gedacht. Ich gebe den Usernamen ein dann wenn ich raus gehe aus dem Feld soll er eine Javascript Function aufrufen in der ein PHP Script gestartet wird die rückgabe von dem PHP script soll dann in Javascript weiter verarbeitet werden und zwar wenn der Name schon in der DB ist soll "Falsch" ausgegeben werden und wenn der name nicht vorhanden ist soll "OK" ausgegeben werden.

PHP:
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />


<!-- Textfelder leeren -->
        
<script language="JavaScript">
function clearField(user) {

if (user.value == "Bitte Text eingeben!!") user.value = "";

}  

</script>

<!-- ________Ende_________ -->

<!-- Form Prüfen -->     

<script language="JavaScript">
function checkForm1(Form1) 
{
    var user = document.getElementById('user').value;
    
    if(user.length < 5)
     {
        alert("Die Eingabe ist zu kurz!");
        return false;
    }
    else
    {
        return true;
    }
}  

<!-- ___Ende___ -->
</script>

<script type="text/javascript" language="javascript">
<!-- Felder Prüfen -->
    
function checkUser()
{
    var user = document.getElementById('username').value;
	var userrahmen = document.getElementById('username');
    var userelement = document.getElementById('falsch');
    
    if(user.length < 5)
    {
        userelement.innerHTML = "Der Eintrag ist zu kurz!";
        userelement.style.color = "red";
		userrahmen.style.border = "2px outset red";
		userrahmen.style.borderRadius = '1em';
    }
    else
    {
        userelement.innerHTML = "OK!";
        userelement.style.color = "green";
		userrahmen.style.border = "2px outset green";
		userrahmen.style.borderRadius = '1em';
    }
}
<!-- ___Ende____ -->

function checkUsernameFrei()
{

<?PHP

//Server Verbindung
$con = mysql_connect("distanz.di*****.de","distanz","2********s") or die ("Keine Verbindung moeglich");
       mysql_select_db("distanz") or die ("Die Datenbank gibt es nich");

$result = mysql_query("SELECT id FROM user WHERE username LIKE '$username'");
$menge = mysql_num_rows($result);


echo $menge;

?>	
 
	var username ='<?php echo $menge ;?>';
	var ausgabe = document.getElementById('falsch').value;
	
    if (username == 0)
	{ 
	    ausgabe.innerHTML = "OK";
	  
	}else{
		ausgabe.innerHTML = "Falsch";
	}
	  
}


</script>
        
        
<title>Test 1</title>
  </head>
    <body><table border="1">
        <tr><td><form method='POST' name='Form1' id='Form1' onSubmit='return checkForm1(this)'/><td>
            <td><input type='text' size='22' name='username' id='username' value='' onClick='' onChange='return checkUser(this)' 
        onBlur='return checkUsernameFrei(this)' style= 'border: 2px; border-style: outset; border-color:#000; border-radius:1em;'/></td> 
 <td>       <lable id='falsch'></lable><br><br></td>
 <td>
        
        <input type='Submit' value='Absenden' onClick="Form1.action=''";/></td> 
        <td><input type='Reset' value='Zurücksetzen'/></td>
        </tr>
        </table>
    </body>
</html>

Oder ist es möglich die daten die in dem feld Username stehen im "hintergrund" per on blur an eine andere PHP datei zu schicken die da auswerten zu lassen und das ergebniss dann wieder zurückschicken und auslesen zu lassen? kann auch ruhig nen kleinen moment dauern!

ich hoffe das ihr mir irgendwie helfen könnt wo ich weiter ansetzen soll!? Ich habe keine ahnung mehr :( Geht das überhaupt? xD

Danke schonmal
Distanz
 
Zuletzt bearbeitet:
So bin kurz vorm Ziel aber weiß jetzt nicht warum die if(Ausgabe == 0) abfrage nicht geht!?

jetzt sieht der rest so aus!

PHP:
<?PHP $phpvariable = $_POST['eingabe'];
//Server Verbindung
$con = mysql_connect("distan****de","distanz","***2****s") or die ("Keine Verbindung moeglich");
       mysql_select_db("distanz") or die ("Die Datenbank gibt es nich");
	   
//Vergleich
$result = mysql_query("SELECT id FROM user WHERE username LIKE '$phpvariable'");
$menge = mysql_num_rows($result);
?>


<html>
<head>

<!-- JavaScript Ausgabe -->

<script type="text/JavaScript">

var Ausgabe = "<? echo $menge; ?>";
var Status = document.getElementById('Status');

document.write(Ausgabe);

PHP:
if(Ausgabe == 0)
    {
		Status.innerHTML = "Ok User Frei!";
	}
	else
	{
		Status.innerHTML = "Fehler User besetzt!";
	}
PHP:
</script>

<script type="text/javascript">
function submit()
{ 
	  document.getElementById('form').submit(this);
}
</script>

</head>

<body> 

<form action="" method="post" id="form">
<table border="1">
<tr>
    <td><input type="text" name="eingabe" id="eingabe" onChange="submit()" value="<? echo $phpvariable; ?>"></td>
</tr>
<tr>
    <td><lable id='Status'></lable></td>
</tr>
</table>    
</form>
</body>
</html>

Gruß DistanZ
 
Zuletzt bearbeitet:
Hi, hab das Skript jetzt nur schnell überflogen, aber du fragst ja bei der MySQL Abfrage nur die Spalte "id" aus der Datenbank "user" ab. Das Skript hat also keinen Zugriff auf Variablen wie $menge. Oder woher kommt $menge?
 
Doch also wenn ich mir mit "document.write(Ausgabe);" anzeigen lasse ob der User schon vorhanden ist dann bekomme ich entweder "0" wenn er nicht vorhanden ist oder eben die zahl wie oft der name schon drin ist! nur die if bedinung geht nicht! :( ich will ja nur "wenn die variable Ausgabe == 0 ist dann mach "das" wenn nicht dann "das"

Danke für eure Hilfe!


hier ist das beispiel wie es jetzt funktioniert:

http://distanz.di.funpic.de/Test 2.php

nur der name "Distanz" ist in der datenbank!


in der Opera Fehlerkonsole kommt:


[10.08.2011 17:30:57] JavaScript - http://distanz.di.funpic.de/Test 2.php
Inline script thread
Uncaught exception: TypeError: Cannot convert 'document.getElementById('Status')' to object
Error thrown at line 11, column 2 in http://distanz.di.funpic.de/Test 2.php:
document.getElementById('Status').innerHTML = "OK";


Was soll mir das sagen****

Danke schonmal
 
Zuletzt bearbeitet:
Hi,

wenn du abfragst ob der Name schon vorhanden ist, und er ist es nicht, dann ist er ja "nicht existent" und nicht 0 !? Evtl musst dahingehend deine Abfrage ändern.
 

Neue Beiträge

Zurück