这是我的RESET按钮的代码。这很复杂而且很长。
cmd.exe
我很想知道我是否可以使用Looping或其他方式简化此命令?
答案 0 :(得分:1)
您的示例绝对不是复杂。这很简单;毫无疑问,代码中发生了什么。而且,在我看来,时间并不长。我喜欢。
话虽这么说,如果您有很多代码可以清空多个文本框,则可以编写一个像这样的小方法:
//if notify is pressed
foreach ($rooms as $i) {
if (isset($_POST['waiting' . $i])) {
//Update ReadyTime to time of button press (UTC - 6 hours for Mountain Time)
$sql2 = "UPDATE Main SET Status='Waiting', ReadyTime=TIME_FORMAT(DATE_ADD(LOCALTIME(), INTERVAL -6 HOUR), '%r') WHERE Room='" . $i . "'";
//update record
$conn->query($sql2);
//send text
$body = 'Room '.$i.' is ready!';
$text($body);
}
}
//get sql results (after changes)
$result = $conn->query($sql);
if ($result->num_rows >= 1) {
//columns
echo "<table><tr>
<th>Room</th>
<th>Status</th>
<th>Ready Since:</th>
<th>Notify</th>
<th>Clear Time</th>
<th>Delete Room</th>
</tr>";
while ($row = $result->fetch_assoc()) {
echo "<tr>
<td>" . $row["Room"] . "</td>
<td>" . $row["Status"] . "</td>
<td>" . $row["ReadyTime"] . "</td>
<td><form method='post' id='form1'><button type='submit' name=waiting" . $row["Room"] . " ID='status' form='form1'>Notify Dentist</button></form></td>
<td><form method='post' id='form2'><button type='submit' name=clear" . $row["Room"] . " ID='status' form='form2'>Clear</button></form></td>
<td><form method='post' id='form3'><button type='submit' name=delete" . $row["Room"] . " ID='delete' form='form2'>Delete</button></form></td>
</tr>";
array_push($rooms, $row["Room"]);
}
}
然后用
调用void ClearTextboxes(params TextBox[] args)
{
foreach (var textbox in args) textbox.Text = string.Empty;
}
或者,如果您打算对表单上的每个文本框执行此操作,则可以执行以下操作:
ClearTextboxes(textBox1, textBox2, textBox3, textBox4, textBox5);
您可以对复选框和单选按钮执行类似的操作,例如
foreach (var textbox in this.Controls.OfType<TextBox>()) textbox.Text = string.Empty;
P.S。如果您确实想使代码更易于使用,则可以使用有意义的名称重命名这些控件,例如而不是foreach (var checkbox in this.Controls.OfType<CheckBox>()) checkbox.Checked = false;
(或其他一些描述性名称)代替textBox1
。这比缩短清晰的命令代码要大得多。