Ajax: garip davranış Textfield kontrol ederken

1 Cevap php

Ajax ile kullanıcı adı alanı için mevcut adını kontrol ile bir kayıt formu var. Kullanıcı adınızı alanına bir kullanıcı adı inputing ve iterek "kontrol edin!" düğmesi, komut php script değerini gönderir. Sonra php script böyle adı alanı + tarzı ile kullanıcı adı alanını değiştirir:

alt text

Php script eşdeğer ile formda kullanıcı adı alanını değiştirme ve daha sonra bir form göndererek Yani, o zaman adı alanı boş olup olmadığını denetler sayfadaki komut dosyası için olsun. Ve bu ajax ile kullanıcı adı alanını kontrol ettikten sonra bu değere sahip olsa da, boş bir hata döndürür.

Bu, komut dosyası denetimi aynı alan adı olan ve değeri olan alanı boşaltmak için alır neden anlamıyorum?

P.S. IE tarayıcı çalışır, ancak Firefox ve Opera test bir hata verir!

Bu örnekteki gibi bir şeklidir:

<form method="post" action="check_form.php">
<div id="loadfield"><input type="text" name="username" value=""></div>
<input type="button" value="Check!" onclick="...script for sending username value to PHP script...">
<input type="submit" value="Submit a form">
</form>

Bu form submiting sonra boş alan denetleyen bir komut dosyası vardır:

<?
if(empty($_POST["username"])){
echo "<script>alert('Username field is empty!');</script>";
}
?>

Bu AJAX submiting önce kontrol için kullanıcı adı göndermek, bir betik:

<?
if(empty($_GET["username"])){
echo '<input type="text" name="username" value="'.$_GET["username"].'" style="border-width:1; border-color:red; border-style:solid; background-color:rgb(255,232,230);">';
}
?>

1 Cevap

Öncelikle, Javascript kodu görmeden, bu komut dosyası HTTP isteği geri gidiyor tepkisi ile ne yaptığını bilmek zor. Ben bir şey yanlış gidiyor ki burada tahmin ediyorum.

İkincisi ... Ben belki sorunu yanlış şekilde yaklaşıyor olduğunuzu düşünüyorum. Ne yapıyoruz gerçekten ajax hiç değildir. Eğer yaşıyorsanız konuşma gibi görünüyor:

js: Hi, please check this username for me
php: ok, here's a new input field to replace the old one with.

Konuşma olmalıdır:

js: Hi, please check this username for me
php: Sorry, that username is taken
js: ok thanks, I'll let the user know

Php komut dönmelidir nedir, kullanıcı adı kullanılabilirliğini gösteren, bir XML dosyasıdır. Gibi bir şey:

<?xml version="1.0" encoding="UTF-8"?>
<logincheck username="mylogin">
    <available>false</available>
</logincheck>

O yanıtı yorumlamak ve (inline stilleri ayarı daha iyi) giriş alanına sınıfları eklemek veya uygun olduğunu düşünüyorum, başka bir ileti görüntülemek için javascript kod kadar sonra bulunuyor.

Sonra aslında ajax yapıyoruz!