В настоящее время я работаю над небольшим проектом для класса с использованием PHP, MySQL и HTML для создания простой веб-страницы ввода данных, в которой вы вводите номер детали, номер клиента, количество частей и цену в HTML-форму, и как только вы нажмете «Отправить», она отправляет данные в базу данных MySQL, пока (теоретически) обновляет верхнюю часть экрана, на которой отображается содержимое базы данных MySQL.Как я могу правильно обновить HTML-страницу, когда я нажал кнопку отправки, чтобы отправить данные в мою базу данных SQL?
Странная вещь, когда я впервые нажимаю кнопку «Отправить» после создания новой записи, она ничего не делает. Когда вы добавляете другую запись и нажмите «Отправить», экран обновится, и вы увидите предыдущую запись, введенную в верхней половине экрана, хотя в базе данных есть две записи. Когда вы добавляете записи, отображаемые записи всегда являются одной записью за тем, что действительно находится в базе данных.
Это заставило меня поверить, что это была какая-то проблема с обновлением экрана, поэтому я попробовал множество подходов к освещению экрана без каких-либо результатов.
Итак, мой вопрос заключается в следующем: есть ли способ, чтобы я нажал кнопку отправки после внесения записи, а затем обновил экран, чтобы он показывал вновь добавленную запись?
Вот мой код для проекта до сих пор:
<html>
<head>
<title>Homework Database - Sales Table </title>
</head>
<body>
<h1>Homework Database - Sales Table</h1>
<?php
$mysqli = new mysqli('localhost', 'root', 'moebius1', 'homework'); // hostname , user, password, database name
if ($mysqli->connect_error)
{
die('Connect Error (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
}
?>
<form action="sales2.php" method="POST">
<input type="hidden" name="action" value="delete" />
<table>
<tr>
<th width="10%" align="left"> Delete    </th>
<th width="10%" align="left"> ID Number    </th>
<th width="10%" align="left"> Part Number    </th>
<th width="10%" align="left"> Customer Number    </th>
<th width="10%" align="left"> Quantity   </th>
<th width="10%" align="left"> Price    </th>
</tr>
<?php
$result = $mysqli->query("SELECT * FROM sales");
while($row = $result->fetch_assoc())
{
print "<tr>";
print "<td><input type='checkbox' name='checkboxes[]' value='".$row["IDnumber"]."' /></td>";
print "<td>".$row["IDnumber"]."</td>";
print "<td>".$row["partNbr"]."</td>";
print "<td>".$row["custNumber"]."</td>";
print "<td>".$row["quantity"]."</td>";
print "<td>".$row["price"]."</td>";
print "</tr>";
}
?>
</table>
<input type="submit" value="Delete"/>
</form>
<hr>
<form action="sales2.php" method="POST" >
<input type="hidden" name="action" value="insert" />
Part Number: <input name="partNbr" /><br/>
Customer Number: <input name="custNumber" /><br/>
Quantity: <input name="quantity" /><br/>
Price: $ <input name="price" /><br/>
<input type="submit" value=" Submit " />
</form>
<?php
if(isset($_REQUEST["action"]))
{
switch($_REQUEST["action"])
{
case "insert":
$SQL="INSERT INTO sales (partNbr, custNumber, quantity, price)VALUES (";
$SQL=$SQL."'".$_REQUEST["partNbr"]."',";
$SQL=$SQL."'".$_REQUEST["custNumber"]."',";
$SQL=$SQL."'".$_REQUEST["quantity"]."',";
$SQL=$SQL."'".$_REQUEST["price"]."'";
$SQL=$SQL.");";
if ($mysqli->query($SQL)=== FALSE)
{
printf("Error . Unable to insert data to table. ".$mysqli->error);
}
break;
case "delete":
$SQL="DELETE FROM sales WHERE";
for($i=0; $i<count($_REQUEST['checkboxes']); $i++)
{
$SQL=$SQL." IDnumber=".$_REQUEST['checkboxes'][$i]." or";
}
$SQL=rtrim($SQL, "or");
if ($mysqli->query($SQL)== FALSE)
{
printf("Error. Unable to delete value.".$mysqli->error);
}
break;
}
}
$mysqli->close();
?>
</body>
</html>
Заранее спасибо за любую помощь и все.
Denzil Bennett
Если вы хотите обновить всю страницу, то вы можете использовать http://stackoverflow.com/questions/768431/how-to-make-a-redirect-in-php после процесса $ _Request [' action '] block statement –