PHP javascript post dön tepki

4 Cevap php

Ben formları ve sonrası verileri yeni değilim ... bu yüzden bu sorunu çözmek nasıl bilmiyorum!

Ben basit bir form ile bir php sayfası (sayfa1) ettik:

<form method="post" action="/page2.php">
<input type="search" value="E-Mail Address" size="30" name="email" />
<input type="submit" value="Find E-Mail" />
</form>

Eğer fark edebilirsiniz ... Nasıl bu formu Page2 'email' değerini gönderebilir. Page2 yılında e-posta adresi varsa kontrol etmek için bir veritabanı arama, küçük bir betik var.

$email = $_POST['email'];

$resut = mysql_query("SELECT * FROM table WHERE email = $email");
.   
.
.
/* do something */
.
.
.

if($result){
    //post back yes
}
else{
   //post back no
}

Ben nasıl php geri yazı yapmak bilmiyorum! Ve nasıl sonrası geri verilere yapabileceğiniz arama sonucunu bildiren bir uyarı gösteren bir javascript yöntemi okunur?

Bu benim page2 geri yazılan önce diğer bazı eylemler yapmak, çünkü yapmaya çalışıyorum ne sadece bir örnektir.

Ben Gönder düğmesine tıkladığınızda, ben ... Bu geri bir javascript yöntemi göndermek için gereken nedeni dönen bir göstergesi animasyon çalışıyorum! Javascript fonksiyonu animasyonu durdurmak ve arama sonucu ile uyarı açılır gerekir çünkü!

Şimdiden çok teşekkürler!

4 Cevap

Sana AJAX kadar okumanızı öneririz.

Here's a PHP example AJAX hit detayları W3Schools'da üzerinde.

Merhaba ben iki şekilde işleyebilir düşünüyorum.

First one is to submit the form, save the data in your session, check the email, redirect back to your form and display the results and data from session.

Gibi

session_start();

// store email in session to show it on form after validation
$_SESSION['email'] = $_POST['email'];   

// put your result in your session
if ($results) { 
    $_SESSION['result'] = 'fine';
    header(Location: 'yourform.php'); // redirect to your form
}

Şimdi şeklinde bazı php kodu koymak:

<?php 

session_start();

// check if result is fine, if yes do something..
if ($_SESSION['result'] == 'fine) {
    echo 'Email is fine..';
} else {
    echo 'Wrong Email..';
}

?>

Daha infos: Sessions & Forms

Ve form alanına geri e-posta değeri koymak

<input type="search" 
 value="<?php echo $_SESSION['email']; ?>" 
 size="30" 
 name="email" />

Benim ingilizce affedin, bu biliyorum korkunç ;)

Ve benim önce ajax şey bazı cevaplar diğeri!

Bir dipnot düşmek gibi, sen kesinlikle önlemek için, bir SQL isteği kullanmadan önce verilerinizi sakınmalısınız SQL injection

Eğer mysql_* işlevleri kullanırken, bu onlardan biri ile yapılması olacaktır:

Bunu sunucudan istemciye olduğu gibi bu durumda göndermek mümkün olmaz. POST hakkında daha fazla bilgi için this article bakabilirsiniz.

Sorunuzu yanıtlamak için size sorgu yapmış zaman böyle bir şey yapmak istersiniz:

if(mysql_num_rows($result)){ //implies not 0
   $data = mysql_fetch_array($result);
   print_r($data);
}
else{
//no results found
echo "no results were found";
}

Print_r işlevi sadece sorgu döndü olurdu tüm sonuçları yazdırırken, muhtemelen bazı html kullanarak bu biçimlendirmek isteyecektir. $ Veri böyle tek bir öğesini yazdırabilirsiniz sadece bir dizidir:

echo $data['email'];

Bu yardımcı olur umarım!