防止空输入返回undefind,而是返回一个空字符串

时间:2016-04-06 18:12:16

标签: javascript php get

正如标题所示,我有一个注册表,因为我知道可以禁用javascript,我决定检查我的服务器端php中的空输入,但所有空输入返回undefined作为字符串,而不仅仅是一个空字符串,无论如何(在PHP )我可以阻止它返回或确保该值已知为空? (用户仍然可以选择未定义的名称或用户名) Javascript函数:

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:

<?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';
}

3 个答案:

答案 0 :(得分:1)

首先,不应该是

$('#fname').val()

使用jQuery时?虽然我们正在使用它,但是使用jQuery只是通过ID选择一个元素会让性能变得有点懒惰。为什么不使用

document.getElementById('fname').value

它可能只有几毫秒,但是它们会加在更大的脚本中,所以为什么不能使用vanilla JS来实现你需要的东西呢? :)

回答你的问题:

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

是您正在寻找的。

答案 1 :(得分:1)

您可以按照此示例查看var是否未定义,如果它是否为空字符串,如果不是,则返回变量本身

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

答案 2 :(得分:1)

首选

  

$(“#someID”)。value || “默认值”

如果userInput是假的(即空字符串,未定义等),它将允许您定义默认值

如果用户输入undefined,则不会是undefined,而是字符串“undefined”

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 }