Autor Zpráva
Majkelju
Profil
Zdravím,

rád bych se dozvěděl, jakým způsobem bych mohl při registraci uživatele bez reloadu stránky zkontrolovat, zda mailová adresa, kterou zadal, už je či není v databázi a v případě shody vyskočil alert s upozorněním. Kontrolu provádím při stisku submit buttonu formuláře. Předem díky za rady!
Fisir
Profil
Reaguji na Majkelju:
Hledej AJAX.
Majkelju
Profil
No hledal jsem, hledal...ale z těch ActiveXObject a XMLHttpRequest a dalších věcí jsem dost zmatený, nenašel jsem žádný pořádný příklad, kde by to bylo jednoduše vysvětleno, navíc u těch příkladů jsou tuny kódu, což pochybuju, že budu potřebovat...
Šlo by to udělat nějak takhle?
var mail = <? echo $mail_adresa; ?>
$( "#divSHlaskou" ).load( "porovnaniMailuSDatabazi.php?mail="+mail );

A v tom PHP souboru bych provedl ten SQL dotaz?
Akorát nevím (pokud to z principu lze takto udělat), jak pak zpět do toho souboru s JS kódem dostat výsledek toho dotazu, respektive jak dostat zpět jakoukoliv proměnnou.
Pokud by se mi toto podařilo, tak už bych udělal jen:
if (emailShoda == true){
alert("E-mailová adresa již v databázi je.");
}
Radek9
Profil
Majkelju:
jak pak zpět do toho souboru s JS kódem dostat výsledek toho dotazu
Přesně tím AJAXem. Jestli jsi z toho byl zmatený, asi nebude nejlepší nápad to patlat. Neprve bych doporučil naučit se pořádně JS.
Majkelju
Profil
Radek9:
A opravdu to nejde bez použití těch XML requestů a ActiveX objektů? V minulosti jsem se při hledání řešení různých problémů dočetl o použití některých příkazů javascriptu (jQuery) jako takového pseudo AJAXu. Lze to i tomto případě? Případně mohl bych poprosit o nějaký článek, kde je AJAX jednoduše vysvětlen s krátkými příklady bez desítek řádků kódu kolem?
Fisir
Profil
Reaguji na Majkelju:
nějaký článek, kde je AJAX jednoduše vysvětlen
Já jsem s AJAXem „začínal“ s pomocí článku na Digitálním citronu.

(jQuery) jako takového pseudo AJAXu
Tak to nechápu, jQuery využívá naprosto standardní AJAX, jen ti umožňuje ho zavolat jednodušeji. Ale pouze kvůli AJAXu bych rozhodně jQuery nepřikládal.
Majkelju
Profil
Fisir:
Děkuju za link, mrknu na to. jQuery na webu nebudu mít jen kvůli tomuto, rozhodně ho ještě budu hodně potřebovat.
Nakonec jsem to metodou pokus-omyl nějako zprovoznil.

Na stránce s registračním formulářem a JS kontrolou vstupů jsem přidal:
        $( "#checkMail" ).load( "checkMail.php?mail="+jmeno, function(){
            if(jeObsazen==true)    alert( 'Tato e-mailová adresa je již obsazena!' );
            return false;
        } );

A pak vytvořil nový soubor, kde se dotazuju do DB:
<?    
    include "protected/_mysql.php";
    $mail=$_GET['mail'];
    $query = mysql_query("SELECT `id` FROM `users` WHERE `name` = '".$mail."'");
    $data=mysql_fetch_array($query);
    
    if($data['id']==NULL) $jeObsazen = false;
    else $jeObsazen = true;

?>
<script>
var jeObsazen = <?echo $jeObsazen;?>
</script>

Nevím, jestli to je nebo není AJAX, ale hlavně, že to funguje :D
Třeba to řešení pomůže někomu s podobným problémem a podobným nedostatkem pochopení AJAXu v základu :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: