Bir form göndermek bir AJAX kod çalıştıran

4 Cevap php

İşte benim form bulunuyor:

<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!" />
</form>

Ve benim jQuery:

    $(document).ready(function() {

        $('form').submit(function() {
            email = $('input[name=email]').val();
            $.post("/scripts/addemail.php", {email_address:email}, function(data){

               if(data == "invalid") { 
                alert("invalid"); 

               } else if(data == "used") { 
                alert("used"); 

               } else if(data == "success") { 
               alert("success"); 

               } else {
                alert("error"); 

               }
            });
        });
    });

ve benim PHP:

<?php

mysql_connect ('localhost', '********', '********') ;
mysql_select_db ('Blog');

function check_email($input) {

     $input = htmlspecialchars(strip_tags($input));

     $checkaddress = "SELECT * FROM emails WHERE email='$input'"; 
     $query = mysql_query($checkaddress);

     if (!eregi("^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $input)) {
          return "invalid";
     } else if ( mysql_num_rows($query) >= 1 ) { 
        return "used"; 
     } else {
        $result = mysql_query("INSERT INTO emails (email) VALUES ('$input')");
        return "success";
    }
}

$email = urldecode(implode(file('php://input')));
$result = check_email($email);
echo $result;
?>

Sorun olduğunu yerine jQuery kendi hareket olacak = "/ scripts / addemail_fb.php". AJAX ve jQuery ile AJAX yeniyim, ama uzun bir süre için jQuery kullanarak oldum.

Ben iki sorun olduğunu düşünüyorum: Ben bilgileri doğru jQuery gönderilen olduğunu sanmıyorum ve ben anahtar ile nasıl başa emin değilim: değer çiftleri (email_address: e-posta) PHP. Herhangi bir yardım için teşekkür ederiz! Ve evet, ben açıkçası bir acemi değilim.

4 Cevap

Varsayılan davranışı önlemek için formun gönderme işlevi içinde bir return false; ekleyin.

"Düğmesi" için "Gönder" türü girişinizi değiştirmeyi düşünün. Sonra bu düğme için "onclick" olayı için jquery kodu ekleyin. so .. yerine "$ ('form'). sunmak () ..." kullanmak gerekir

$("#nameofSubmitButton").click(function(){
 //do your stuff here.
});

Sen işlevine işaret, DOM / jquery aracılığı bağlı ya açıkça form etiketi veya örtülü, bir onSubmit olay işleyicisi gerekir.

olmak için form eylemi ayarlayabilirsiniz

<form action='javascript:yourAjaxFunction();'></form>

Form gönderildiğinde sonra, tanımladığınız javascript fonksiyonu çalışacaktır. Eğer Jquery kullanarak eğer, size ajax çağrı göndermek bir sorgu dizesi içine değişkenlerin tüm almak için form için. Serialize yöntemini kullanabilirsiniz.