Условные операторы, которые регистрируются, только если все обязательные поля заполнены для Unity - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь создать оператор if-else, где, если хотя бы одно из обязательных полей ввода будет пустым, оно не будет вставлять какую-либо информацию в базу данных

Я пытался использовать операнды, такие как =! и == но безрезультатно, я не могу думать о другом способе получить условное утверждение, в котором я нуждаюсь. Вот что я пытался сделать:

public InputField inputUserName;
public InputField inputEmail;

    string CreateUserURL = "http://localhost/balikaral/insertAccount.php";

    public void verif()
    {
        if (inputUserName != "" && inputEmail != "")
        {
            CreateUser(); //method which contains the function to insert the inputted data into the database
        }
        else
        {
            print("error");
        }
    }

1 Ответ

1 голос
/ 01 мая 2019

Прежде всего, вы проверяете, равно ли InputField (не) "" ".Поле ввода является объектом и никогда не будет строковым значением.Вы хотите InputField.text.

Также я считаю удобным разделить мои условия на отдельные операторы и добавить строку ошибок, чтобы отладчик / пользователь имел четкое представление о том, что идет не так.Затем вы также можете разместить ошибки в диалоговом окне для вашего пользователя таким образом.Попробуйте следующее:

public void verif()
{
    StringBuilder errorBuilder = new StringBuilder();

    if (string.IsNullOrWhiteSpace(inputUserName.text))
    {
        errorBuilder.AppendLine("UserName cannot be empty!");
    }


    if (string.IsNullOrWhiteSpace(inputEmail.text))
    {
        errorBuilder.AppendLine("Email cannot be empty!");
    }

    // Add some more validation if you want, for instance you could also add name length or validate if the email is in correct format

    if (errorBuilder.Length > 0)
    {
        print(errorBuilder.ToString());
        return;
    }
    else // no errors
    {
        CreateUser();
    }
}
...