2016-04-06 10 views
0

Başlığın önerdiği gibi, bir kayıt formum var ve javascript'in devre dışı bırakılabileceğini bildiğimden, sunucu taraflı php'mdeki boş girişleri denetlemeye karar verdim, ancak Tüm boş girişler undefined dizgisini sadece boş bir dizgenin yerine döndürür, yine de ( PHP'de ) dönmesini engelleyebilir veya değerin boş olduğu bilinmediğinden emin olabilir miyim?boş girdinin undefind öğesinden dönmesini engeller ve bunun yerine boş bir dize döndürür

var lnk = 'register.php?n=' + $('#fname').value + '&f=' + $('#pnumb').value + '&m=' + $('#elecm').value + '&l=' + $('#uname').value + '&p=' + $('#pword').value + '&p2=' + $('#pconf').value; 
     $.post(lnk, function (data) { //Do something with data } 

PHP: JavaScript İşlevini (kullanıcı hala bir ismi veya tanımsız olan kullanıcı adı almak olabilir) Her şeyden

<?php 
//databse info 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "phptest"; 
//Getting values from link 
$comname = $_GET['n']; 
$phone = $_GET['f']; 
$mail = $_GET['m']; 
$uname = $_GET['l']; 
$pass = $_GET['p']; 
$conf = $_GET['p2']; 
//Checking if any value is left empty 
if (empty($comname)) { 
    echo '1'; 
} 
elseif (empty($phone)) { 
    echo '2'; 
} 
elseif (empty($mail)) { 
    echo '3'; 
} 
elseif (empty($uname)) { 
    echo '4'; 
} 
elseif (empty($pass)) { 
    echo '5'; 
} 
elseif (empty($conf)) { 
    echo '6'; 
} 
+0

bence senin javascript bazı hatalar var. http://api.jquery.com/val/ –

+0

@FunkDoc neden bununla çalışmaya değer olmaz? – Omarrrio

+0

Doğru sözdiziminin $ ('# fname') olduğunu düşünüyorum val() –

cevap

1

İlk olarak değil olması gerektiği

JQuery kullanırken
$('#fname').val() 

Ve biz de, jQuery'yi kullanarak kimliğine göre bir eleman seçerken, birazcık sessizlik için performans atıyoruz. Neden kullanamazsınız

document.getElementById('fname').value 

?

Yalnızca milisaniyeler olabilir, ancak daha büyük komut dosyalarına eklenirler, bu nedenle ihtiyacınız olanı elde edebilmek için neden vanilya JS kullanamazsınız? :)

Ve soruna cevap vermek gerekirse:

(document.getElementById('fname').value || '') 

aradığınız budur.

bir var tanımsız ise, değil istersen bir boş dizede döner olup olmadığını görmek için bu örneği takip edebilirsiniz
+0

Teşekkür ederim, biraz geç ekledim ama hala birisinin yorumundan veya yanıtından erken bir yol ekledim, ancak sunucunun bir başka dosyası olan php dosyasında kontrolün olmasını istedim çünkü JS her şeyden sonra devre dışı bırakılabilir. – Omarrrio

+1

Sıradan bir POST/GET isteği tarafından herhangi bir JavaScript müdahalesine gerek olmadan gönderilen boş bir girişin, "$ _POST" veya "$ _GET" değişkeninin "undefined" dizesini içermesi mümkün değildir. Bu yüzden, neden sadece JS aktive edildiğinde mevcut olacak bir No-JS-Fallback olarak sunucu tarafında bir şeyler yakalamak isteyeceğinizi anlamıyorum. ;) – Connum

+0

Yeterince ikincil cevap yeterli, teşekkürler. – Omarrrio

1

değişken kendisi

var string = (typeof(string) == 'undefined') ? "" :string ; 
1

bu

$ tercih döndürür ("#someID"). value || "Varsayılan değer"

O userinput (yani boş dize, tanımlanmamış vs)

kullanıcı tanımlanmamış girer, bu undefined ancak dize "tanımsız olmayacak falsy ise varsayılan değeri tanımlamak sağlayacak "

var lnk = 'register.php?n=' + ($('#fname').value||"") + '&f=' + ($('#pnumb').value||"") + '&m=' + ($('#elecm').value||"") + '&l=' + ($('#uname').value||) + '&p=' + ($('#pword').value||"") + '&p2=' + ($('#pconf').value||); 
 
     $.post(lnk, function (data) { //Do something with data }

İlgili konular