2016-03-30 29 views
-1

Bir php komut dosyasının dönüş değerini bir js değişkenine atamaya çalışıyorum. Bunu alabilir:İki dizeyi düzgün bir şekilde birleştiremiyor

var email = jQuery("input[name=email]").val(); 
    var emailRegex = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,})?$/; 
    var exists='<?php 
        $query = "SELECT * FROM rss_members WHERE email_id=\"[email protected]\""; 
        $results = mysql_query($query); 
        $results = mysql_num_rows($results); 
        echo $results; 
       ?>'; 
    console.log(exists) 

sorgu çalışır ve ben EMAIL_ID = \ "gibi bir şey yazarsanız' Geri doğru sonuçlar elde, ama e-posta değişkenle "[email protected]" değiştirmek istiyor ama + e-posta + '\ "..., sorgu sonucu yanlış geri geliyor. Neyi yanlış yapıyorum?

+2

Sadece bildiğiniz gibi, istemci tarafında sunucu tarafı kodu oluşturmak genellikle kötü bir fikirdir. Bu kodu sunucuda saklarsanız daha iyi olur, sadece e-posta adresini veya bir şeyi gönderin. –

+4

PHP çalışır ve herhangi bir JS kodu çalıştırılmadan önce biter. Bu şekilde yapamazsınız - sunucuya yeni bir istekte bulunmanız (örn. AJAX üzerinden), değişken değerini parametre olarak göndermeniz ve sonra PHP betiğinin doğru değeri döndürmesi gerekir. – CBroe

+0

AJAX'ı öğrenmeye başlayın. Bu size çok yardımcı olacaktır. –

cevap

1

Yürütme süresini dikkate almıyorsunuz. Bir sunucuya istekte bulunduğunuzda (örneğin www.google.com adresini girin) sunucu bir istek alır ve bir HTML sayfasıyla yanıt verir. Sunucunuzdaki sunucu PHP'dir ve içinde yer alan bazı javascript içeren bir HTML sayfası gönderir. Tarayıcı HTML sayfasını aldıktan sonra, onu yorumlar ve javascript kodunu çalıştırır.

Temel olarak, php kodunuz e-posta değişkenine erişim olmadan çalıştı. Sayfa yüklendikten sonra sunucu tarafı bilgilerine erişmek istiyorsanız, ajax isteğinde bulunmanız gerekir.

İlgili konular