如何避免将空格保存到数据库中


How could avoid blank spaces to be saved to the DB?

我一直在尝试使用jquery将一些输入保存到数据库中。我想防止用户用空格填充数据库。到目前为止,我所做的代码不允许在客户将输入框留空的情况下继续,这是可以的。问题是,如果客户多次点击空格键,记录将被保存到数据库中。底线是…只有当用户在输入框中写了一些内容时,我才想让他继续使用。对不起我的语法。希望你们能理解。非常感谢!

这是我正在使用的ATM脚本:

            <script>
        $(document).ready(function(){
            $(function() 
            {
                $('.btn-det').click(function(e) 
                {
                    e.preventDefault();
                    var name = $('#name').val();
                    var surname = $('#surname').val();
                    if (name === "" && surname === "") 
                    {
                        alert("Please, enter your details!");
                        $("#userQuestion").hide();
                    }
                    else if(name != "" && surname === "") 
                    {
                        alert("Please, enter your Surname");
                        $("#userQuestion").hide();
                    }
                    else if(name === "" && surname != "") 
                    {
                        alert("Please, enter your Name");
                        $("#userQuestion").hide();
                    }
                    else {
                        $.post("saveDetails.php", 
                        { 
                            name: name,
                            surname: surname 
                        });
                        $("#userDetails").hide(500);
                        $("#userQuestion").show(600);
                    }   
                });
            });
        }); 
    </script>

我忘了提一下,在保存到DB之前,我有以下函数,它使用.trim(),但不会删除空白。它只删除输入内容开头和结尾的空格。再次感谢!

            function test_input($data)
    {
        $data = trim($data);
        $data = stripcslashes($data);
        $data = htmlspecialchars($data);
        return $data;
    }

在javascript中,您可以在发送数据之前对字符串使用trim函数:

var name = $('#name').val();
name = name.trim();

http://www.w3schools.com/jsref/jsref_trim_string.asp

这将删除字符串前后的空格

在php中,您可以执行相同的

$name = trim((string) $_POST['name']);

为了清楚起见,TRIM默认情况下只删除空格(而不是所有空格)。这是医生。

UPDATE FOO set FIELD2 = TRIM(FIELD2);

http://www.w3schools.com/jsref/jsref_trim_string.asp

如果您需要在select查询中使用trim,您也可以使用正则表达式

SELECT * FROM table_name WHERE field RLIKE ' * query-string *'

MySql资源

另一个例子:

UPDATE student_surveys
SET favorite_activities =
TRIM(LEADING SPACE(1) FROM TRIM(TRAILING ',' FROM favorite_activities));

使用以下函数

trim($data," 't")

这将删除字符串开头和结尾的空白和制表符。看看

http://php.net/manual/en/function.trim.php

您必须将"作为第二个参数,这意味着删除空白(即")字符串的开头和结尾,"''t"表示删除制表符。两者结合(即"''t")表示删除空格和制表符。

好的,伙计们。这就是我所做的。我没有只使用"else",而是使用了"else-if",条件是所有输入字段都不为空,并同时修剪了这些字段。。。这只是我编辑的一篇文章:

非常感谢你的帮助!

    if (name === "" && surname === "") 
                    {
                        alert("Please, enter your details!");
                        $("#userQuestion").hide();
                    }
                    else if(name !== "" && surname === "") 
                    {
                        alert("Please, enter your Surname");
                        $("#userQuestion").hide();
                    }
                    else if(name === "" && surname !== "") 
                    {
                        alert("Please, enter your Name");
                        $("#userQuestion").hide();
                    }
                    //If there's any data saved into the variables, it deletes any leading and trailing white spaces//
                    else if($.trim(name) != "" && $.trim(surname) != "")
                    {
                        $.post("saveDetails.php", 
                        { 
                            name: name,
                            surname: surname 
                        });
                        $("#userDetails").hide(500);
                        $("#userQuestion").show(600);

再次,非常感谢!