Basit AJAX kod tanınmadı

2 Cevap php

AJAX öğrenmeye başlamak için çalışıyorum, ve ben zaten biraz güdük isabet ettik. Yani basit başlıyorum ve sadece dize uzunluğunu gösteren açılır bir uyarı almaya çalışırken kullanıcı türleri bir metin alanına.

HTML:

<form action="/scripts/addemail_fb.php" method="post">
<input type="text" name="email" value="Enter your email here!" />
<input id="submit" type="submit" name="submit" value="Go!"     onClick="check(this.form.email.value);"/>
</form>

JS:

function check(email) {


    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    }


    else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }

    email=encodeURIComponent(email);

    req.open("POST","/scripts/addemail.php");

    req.setRequestHeader(
        'Content-Type',
        'application/x-www-form-urlencoded; charset=UTF-8');

    req.send(email);

    req.onreadystatechange=function() {

        if(req.readyState==4) {

            result = req.responseText;

            alert("The length of the email is:" + result);

        }

    }

    return false;

}

PHP (addemail.php):

<?php
function check_email($input) {
     return strlen($input);
}
$email = urldecode(implode(file('php://input')));
$result = check_email($email);
echo $result;
?>

Ve evet, ben bölümünde JS dahil ettik. Ben neler emin değilim bu yüzden bir öğretici neredeyse doğrudan bu var. Benim test tarayıcı Safari, ama ben de FF denedim. Bu benim ilk AJAX girişimi gibi Maalesef bu, açıktır edilir. Teşekkürler!

EDIT: Üzgünüm, sorun onun sadece eylem = "addemail_fb" yerine JS açıklanan dosyasına gidiyor olmasıdır.

-IMaster

2 Cevap

onsubmit (form), bu yüzden benzeri onclick işleyicisi değiştirin:

<form onsubmit="return check(this.email.value);"> ... </form>

Ayrıca, req.onreadystatechange çağırmadan önce req.send () set

İşte sorun:

You are doing it wrong.

Ve jQuery cevap olduğunu.


Ama cidden. Bu kabak pasta bir parça içine kesim daha Javascript hayatı kolaylaştıracak gibi, jQuery kullanmayı deneyin.

AJAX JavaScript en can sıkıcı konulardan biridir, ve jQuery, diğer kütüphaneler ile birlikte gitti ve başa çıkmak için çok daha kolay sorunu yaptık. Artı, sadece çok daha güzel Javascript ile çalışmak için jQuery pek çok diğer büyük özellikleri vardır.

JQuery, tüm kod gibi görünecektir:

 $.post("/scripts/addemail.php", {email_address:email}, function(data){
    alert("The length of the email is:"+data);
 });

Kabak pasta konuşan .....


Şimdi jQuery benim kamu sunucu duyurusu bitirdim ki, siz Javascript konsolu (Ctrl + Shift + Firefox J) kontrol etmek istiyorum, ve sayfa çalışacaktır. Bu size böyle sözdizimi hataları veya yanlış çeşitli başka şeyler olarak var bağlanmıştır hataları verecektir.

Oraya gitmek ve sonra bize pop-up herhangi bir hata iletisi verebilir, biz sorunu çözmek mümkün olması daha muhtemel olacaktır.