Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Запрет нажатия кнопки, пока не заполнены все поля

Всем привет, народ помогите пожалуйста)
на форме есть 4 кнопки и одна которая всё добавляет)
надо чтобы пока все 4 кнопки не нажали кнопка которая всё добавляет выдавало сообщение "пожалуйста заполните все данные"
Заранее благодарен)
C++
1
2
3
4
5
6
7
8
9
ADOTable1->Insert();
ADOTable1->FieldByName("Сотрудник")->AsString=S;
ADOTable1->FieldByName("Клиент")->AsString=S1;
ADOTable1->FieldByName("Поставщик")->AsString=S2;
ADOTable1->FieldByName("Наименование товара")->AsString=S3;
ADOTable1->FieldByName("Тип товара")->AsString=S4;
ADOTable1->FieldByName("Цена")->AsString=S5;
ADOTable1->Post();
MessageDlg("Запись успешно добавлена", mtInformation, TMsgDlgButtons() << mbOK, 0);
Добавлено через 15 часов 46 минут
Вот так пробовал не получается
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
{
MessageDlg("Пожалуйста заполните все поля", mtInformation, TMsgDlgButtons() << mbOK, 0);
return;
}
ADOTable1->Insert();
ADOTable1->FieldByName("Сотрудник")->AsString=S;
ADOTable1->FieldByName("Клиент")->AsString=S1;
ADOTable1->FieldByName("Поставщик")->AsString=S2;
ADOTable1->FieldByName("Наименование товара")->AsString=S3;
ADOTable1->FieldByName("Тип товара")->AsString=S4;
ADOTable1->FieldByName("Цена")->AsString=S5;
ADOTable1->Post();
MessageDlg("Запись успешно добавлена", mtInformation, TMsgDlgButtons() << mbOK, 0);
}
Ответ:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
if( S.IsEmpty() || S1.IsEmpty() || S2.IsEmpty() || S3.IsEmpty() || S4.IsEmpty() || S5.IsEmpty() )
  {
  MessageDlg("Пожалуйста заполните все поля", mtInformation, TMsgDlgButtons() << mbOK, 0);
  }
else
  {
  ADOTable1->Insert();
  ADOTable1->FieldByName("Сотрудник")->AsString=S;
  ADOTable1->FieldByName("Клиент")->AsString=S1;
  ADOTable1->FieldByName("Поставщик")->AsString=S2;
  ADOTable1->FieldByName("Наименование товара")->AsString=S3;
  ADOTable1->FieldByName("Тип товара")->AsString=S4;
  ADOTable1->FieldByName("Цена")->AsString=S5;
  ADOTable1->Post();
  MessageDlg("Запись успешно добавлена", mtInformation, TMsgDlgButtons() << mbOK, 0);
  }
}
Вопрос: Проверка пустых полей

Здравствуйте! Нужна ваша в помощь в проверке пустых полей. У меня не работает сама проверка, после нажатия кнопки с пустыми полями, просто показывает сообщение, что пароль и логин записаны в файл и все. Не знаете, в чем может быть причина?
index.php:
PHP:

  1. <?PHP
  2.  
  3. require "rb.php";
  4.  
  5. $data = $_POST;
  6. if( ($data['do_signup']) )
  7. {
  8.     $errors =();
  9.     if( ($data['login']) == '')
  10.     {
  11.         $errors[] = 'Введите логин';
  12.     }
  13.     if( ($data['password']) == '')
  14.     {
  15.         $errors[] = 'Введите пароль';
  16.     }
  17.     if( ($errors))
  18.     {
  19.         //все хорошо
  20.     } else
  21.     {
  22.         echo '<div style="color: red;">'.($errors).'</div><hr>';
  23.     }
  24. }
  25. ?>

CODE (html):

  1. <form action="signup.php" method="POST">
  2.         <p>Логин</p>
  3.         <input type="text" name="login">
  4.         <p>Пароль</p>
  5.         <input type="password" name="password"><br>
  6.         <button type="submit" name="do_signup">Войти</button>
  7. </form>


signup.php:
PHP:

  1. <?PHP
  2.         $file=('users.txt','a+t');
  3.         ($file,$_POST['login']);
  4.         ($file, " - ");
  5.         ($file,$_POST['password']);
  6.         ($file, "\n");
  7.         ($file);
  8.         echo 'Данные записаны в файл!';
  9. ?>

(Отредактировано автором: 09 Ноября, 2017 - 17:29:54)

Ответ:
NezoRex, ещё не мешало бы добавить каких-то проверок, а то сейчас у вас проверяется только на соответствие не пустой строке.
Вопрос: Разрешить нажатие кнопки только когда заполнены все поля

Подскажите что подкорректировать в коде чтобы кнопка была активна только после заполнения всех полей и при том поля должны быть заполнены правильно (белый цвет поля все правильно, красный - ошибка)
вот код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
namespace Средний_балл
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Enabled = false;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
          float mat = Convert.ToSingle(txtMat.Text); 
          float rus = Convert.ToSingle(txtRus.Text); 
          float inf = Convert.ToSingle(txtInf.Text); 
          float result = (mat + rus + inf) / 3; 
          txtResult.Text = result.ToString();
 
          string Spec = txtSpec.Text;
          string FIO = txtFIO.Text;
          string zapis = FIO + " " + mat + " " + rus + " " + inf + "\r\n";
 
          if (Spec.Length >= 1 && FIO.Length >= 1)
          {
              
              string fail = Spec + ".txt";
              if (File.Exists(fail))
              {
                  File.AppendAllText(fail, zapis, Encoding.UTF8);
              }
              else
              {
                  File.WriteAllText(fail, zapis, Encoding.UTF8);
              }
          }
        }
 
        private void txtMat_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void txtRus_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void txtInf_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void txt_TextChanged(object sender, EventArgs e)
        {
            TextBox txt = (TextBox) sender; 
            try
            { 
                float sum = Convert.ToSingle(txt.Text); 
                if(sum >= 0 && sum <= 100) 
                { 
                    txt.BackColor = Color.White;
                    button1.Enabled = true;
                }
                else
                { 
                    txt.BackColor = Color.Red;
                    button1.Enabled = false;
                } 
            } 
            catch(Exception ex) 
            { 
                txt.BackColor = Color.Red;
                button1.Enabled = false;
            } 
        }
 
        private void txtFIO_TextChanged(object sender, EventArgs e)
        {
            try
            {
                string FIO = txtFIO.Text;
                if (FIO.Length >= 1) 
                {
                    txtFIO.BackColor = Color.White;
                    button1.Enabled = true;
                } 
                else
                {
                    txtFIO.BackColor = Color.Red;
                    button1.Enabled = false;
                }    
            } 
            catch (Exception ex) 
            {
                txtFIO.BackColor = Color.Red;
                button1.Enabled = false;
            } 
        }
 
        private void txtSpec_TextChanged(object sender, EventArgs e)
        {           
            try
            {
                string Spec = txtSpec.Text;
                if (Spec.Length >= 1) 
                {
                    txtSpec.BackColor = Color.White;
                    button1.Enabled = true;
                } 
                else
                {
                    txtSpec.BackColor = Color.Red;
                    button1.Enabled = false;
                }    
            } 
            catch (Exception ex) 
            {
                txtSpec.BackColor = Color.Red;
                button1.Enabled = false;
            }
        }
    }
}
проблема заключается в том что при запуске все поля белые а красными могут сдать после заполнения, следовательно после заполнения первого же поля кнопка становится активной, хотя остальные поля пустые
Ответ: разобралась,заменила один TextBox на Label и все заработало

Добавлено через 1 минуту
не могли бы помочь с этим
Вопрос: Можно ли заполнять одно поле вместо всех полей в таблице БД MySQL?

Доброго времени суток!)) Пишу и тестирую скрипт. В нем одна лишь переменная, которой задается значение. Есть БД MySQL. Хочу заполнить лишь одно поле, а остальные оставить пустыми.

Получится ли так сделать? Или все поля заполнять нужно? И создавать запрос только на запись одно поля или же организовать его по другому?



В данном случае хочу заполнить лишь поле s_description. Можно ли его только заполнить и сохранить? Или создавать запрос на заполнение всех полей?

Заранее благодарен за ответ))
Ответ: Спасибо огромное, заработало!))) Но выявилась другая проблема. Запись заносится в БД, но только если это цифры. Однако, как только пишу Hello,World нисколько не добавляется... Почему? В коде вроде ничего не менял...

Добавлено через 6 минут
Все, решено. Получилось. Я всего лишь взял $name в одинарные кавычки. '$name'.

Спасибо еще раз за помощь)))
Вопрос: Удалить все поля в таблице MySQL

есть запрос delete, что бы удалите все поля из таблицы, без исключений? Либо как это организовать?

Добавлено через 12 минут
Сообщение от Rakingod
удалите все поля из таблицы
Записи(я перепутал немного)

Добавлено через 1 минуту
я могу конечно послать запрос на id(что бы узнать сколько записей), потом массивом удалить все записи, но может есть способ проще?
Ответ:
Сообщение от Rakingod
может есть способ проще
SELECT без WHERE выбирает все строки таблицы. UPDATE без WHERE изменяет все строки таблицы. DELETE без WHERE удаляет все строки таблицы.

Если идет работа с транзакциями, то разница между DELETE и TRUNCATE в том, что первую можно откатить (ROLLBACK), а вторую нет.
Вопрос: Вывод всех полей из таблицы БД , не зная идентификатора

Можно ли как-нибудь вывести все поля из таблицы не зная идентификаторов в таблице.То есть вывести все данные из любой таблицы
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$database = $_POST["database"];
$table = $_POST["line"];
$mysql = mysql_connect("localhost","root","") or die("Error to connect to MySQL");
mysql_select_db($database) or die ("Error to connect to database");
 
$query = "SELECT DISTINCT * FROM `".$table."`";
$result = mysql_query($query);
mysql_close($mysql);
 
while($row = mysql_fetch_array($result))  // Здесь я указываю имена, но надо без них
{
    echo $row['name']."   ";
    echo $row['genre']."   ";  
    echo $row['length']."   ";
    echo $row['price']."   ";
    echo '</br>';
}
 
?>
Ответ: Вам не понятен смысл словосочетания «каждую запись»? Оставьте все как есть, только при выводе вместо явного обращения к полям используйте форыч с каким-нибудь разделителем или implode.
Вопрос: Создать массив 4 экземпляров структуры Товар и вывести на консоль информацию о всех полях

Создать массив 4 экземпляров структуры Товар и вывести на консоль информацию о все поля. Вычислить общую цену всех товаров.
Есть люди которые смогут объяснить на примере ?
Вообще не могу понять как это делать
Ответ: Ну~ не знаю что тут описывать, вроде все очень примитивно:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class Program
{
    private static void Main()
    {
        // Создал какой-то массив из 4 элементов
        Item[] items =
        {
            new Item { Name = "A", Price = 10 },
            new Item { Name = "B", Price = 20 },
            new Item { Name = "C", Price = 30 },
            new Item { Name = "D", Price = 40 }
        };
 
        double sum = 0; // Переменная, в которой буду хранить сумму стоимости всех товаров
        foreach (Item item in items) // Перебираю все элементы массива в цикле
        {
            sum += item.Price; // Добавляю цену товара к общей цене
            Console.WriteLine($"Товар {item.Name} по цене {item.Price}"); // Вывожу информацию о товаре
        }
        Console.WriteLine($"Общая цена: {sum}"); // Вывожу общую цену всех товаров
    }
 
    // Структура, которая описывает товар
    private struct Item
    {
        public string Name { get; set; } // Название товара
        public double Price { get; set; } // Цена товара
    }
}
Вопрос: Куда положить метод проверки заполненности полей объекта/сущности?

Начитался про GRASP и GoF шаблоны, ну и решил начать применять, ну и начал с грасповского Information Expert :)
Есть у меня некий объект, сущность, которая мапится в базу.
Естественно описаны поля, геттеры, сеттеры, икьюалс, туСтринг и т.д.
Возникла необходимость создать метод, который бы проверял несколько полей на их значения, то есть они не должны быть пустыми или иметь null.
Метод самый простой, хотя тут тоже надо бы подумать о его универсальности в части оперативного добавления или удаления полей проверки, пока писать его не стал, временно пустой, чтоб не забыть. Возвращает false, если одно из полей не заполнено, и true, если все поля заполнены.
Дак вот вопрос, куда его логичнее всего включить, положить?
1. В класс с интерфейсом пользователя, в листенер кнопки, которая вызывает этот и другие методы?
2. В класс, в котором у меня идет работа с БД, то есть там где методы с sql запросами и возвратами коллекций из БД ?
3. В класс самой сущности? мне кажется этот (3-й) вопрос бредовым, но задал его потому, что вообще в целом что-то стоит в классы сущностей еще добавлять какие-нибудь методы? не говоря, конечно, о методах типа toString()
4. Еще куда-то... ?
Ответ: Petro123,

вроде, ТС хочет проверять перед сохранением, делать это надо на стороне Java )
Вопрос: Виснет скрипт для проверки всех портов

Сделал php скрипт для проверки всех портов(вкл или выкл они), но при обращении к php файлу на хостинге виснет и страница(файл) стают недоступны.
При проверки маленького количества портов скрипт работает, а при проверке всех портов виснет.

Что сделать что бы скрипт смог проверить все порты и при этом не вис(выдал результат по всем портам)???


Код PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
 
$ip = $_SERVER["REMOTE_ADDR"];
 
$errno = 0;
$errstr = '';
 
$limit = "65536";   //порты возможны в диапазоне от 1 до 65535 (для TCP, номер порта 0 зарезервирован и не может быть использован). 
 
$t = 0;
while($limit != "") {
 
$port = ($t+1); 
 
$errno = 0;
$errstr = '';
$fp = @fsockopen($ip, $port, $errno, $errstr, 1);
 
 
if($fp != "") { 
print "<p><span style=\"color: green\">Порт $port включен</span></p>";
} else {
print "<p><span style=\"color: red\">Порт $port выключен</span></p>";
}
 
$t++;
if($t == $limit) { break; }
}
 
?>
Ответ: Быть может хостер не дает возможность на работу длительных скриптов? попробуй на локалхосте
Вопрос: Не все поля сохраняються

ошибка Notice: Undefined variable: name in... и так несколько полей, сообщения выводиться после того как нажимаю кнопку "заказать" которая сохраняет данные в таблицу orders, при этом некоторые поля заполнены в этой таблице а некоторые пустые, именно те пустые из-за которых выдает ошибку.
Ошибка ссылается на эту строку:
PHP
1
2
$query = mysql_query("INSERT INTO orders (name,s_name,address,post_index,email,date,time,product,product_id,price,qty) VALUES ('$name','$s_name','$address','$post_index','$email','$date','$time','{$product['title']}','{$product['id']}','{$product['price']}','$quantity')");
endforeach; 
При всем при этом на локал хост всё прекрасно работает, а на хостинге почему то ошибки и не все заполненные поля...
Вот на эти поля ссылается ошибка:
name, s_name, address, post_index, email и они не заполняются в бд
А вот код input-а который сохраняет имя(name)
PHP
1
<div class="client_form_row"><span class="col-md-4">Ваше имя: </span><input class="col-md-7" type="text" name="name"/><br></div>
, аналогичный код s_name, address... Еще раз повторюсь на localhost все работает а на хостинге ошибка, и не все поля заполнены...

Добавлено через 10 минут
даже если инпутам прописать value и значения, то все равно сохраняются пустые поля в бд
Ответ: Спасибо большое!