正如标题所示,我有一个注册表,因为我知道可以禁用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';
}
答案 0 :(得分:1)
首先,不应该是
$('#fname').val()
使用jQuery时?虽然我们正在使用它,但是使用jQuery只是通过ID选择一个元素会让性能变得有点懒惰。为什么不使用
document.getElementById('fname').value
它可能只有几毫秒,但是它们会加在更大的脚本中,所以为什么不能使用vanilla JS来实现你需要的东西呢? :)
回答你的问题:
(document.getElementById('fname').value || '')
是您正在寻找的。 p>
答案 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 }