0
我有4頁:register.php,view.php,edit.php和display.php On view.php我有一個窗體顯示來自數據庫的所有數據。 我有一個搜索框,其結果顯示在display.php中(它只顯示一行數據庫)。 在顯示PHP我有一個窗體與編輯按鈕的條目。編輯按鈕將我重定向到edit.php,在那裏我可以更改我的數據。當我保存時,它將重定向到view.php,但我希望顯示已編輯條目的已保存值。 我嘗試過,但它desnt工作。 我在這裏的第二個問題是保留在edit.php中的下拉選項,我選擇了在register.php在提交表單後在另一個頁面上重定向
我; m在編程新,我希望有人會幫助我在這個問題。 THX尋求幫助。
我的網頁:
Display.php的
<?php
include('connect-db.php');
$client = $_POST['client'];
$contract = $_POST['contract'];
if(
$contract = $_POST['contract'])
{$query = "select * from users where contract = '$contract'"; }
else{
$query= "select * from users where client = '$client'";
}
$result = mysql_query($query);
echo "<table>";
\t
\t \t while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
\t // echo out the contents of each row into a table
\t \t echo '<label>Contract</label><input readonly="true" value=' . $row['contract'] . '>';
\t \t echo '<label>Client</label><input readonly="true" type="text" value="' . $row['client'] . '">';
\t \t echo '<label>Step</label><input type="text" readonly="true" value=' . $row['Step'] . '>';
\t \t echo '<br><a href="edit.php?contract=' . $row['contract'] . '"><input type="submit"value="Change"></a>';
\t \t echo '<br>'; \t \t
\t \t echo "</table>";
\t }
?>
EDIT.PHP
<?php
function renderForm($contract, $client, $step
{
?>
<!DOCTYPE html>
<body>
<form id="base" name="base" method="post" action="">
\t <input data-validate="number" value="<?php echo $contract; ?>" readonly="true" id="contract">
<input data-validate="text" value="<?php echo $client; ?>" id="client">
\t \t \t \t \t <select name="step">
\t \t \t \t \t <option value="option1">Option1</option>
\t \t \t \t \t \t <option value="option2">Option2</option>
\t \t \t \t </select>
\t <input type="submit" value="Change">
</form>
</body>
</html>
\t \t <?php
}
include('connect-db.php');
if (isset($_POST['submit']))
{
if (is_numeric($_POST['contract']))
{
$contract = mysql_real_escape_string(htmlspecialchars($_POST['contract']));
$client = mysql_real_escape_string(htmlspecialchars($_POST['client']));
$step = mysql_real_escape_string(htmlspecialchars($_POST['step']));
if ($contract == '' || $client == '')
{
$error = 'ERROR: Please fill in all required fields!';
renderForm($contract, $client, $step, $error);
}
else
{
mysql_query("UPDATE users SET
contract='$contract', client='$client', step='$step', WHERE contract='$contract'")
or die(mysql_error());
header("Location: view.php");
}
}
else
{
echo 'Error!';
}
}
else
{
if (isset($_GET['contract']) && is_numeric($_GET['contract']) && $_GET['contract'] > 0)
{
$contract = $_GET['contract'];
$result = mysql_query("SELECT * FROM users WHERE contract=$contract")
or die(mysql_error());
$row = mysql_fetch_array($result);
if($row)
{
$contract = $row['contract'];
$client = $row['client'];
$step = $row['step'];
renderForm($contract, $client, $step, '');
}
else
{
echo "No results!";
}
}
else
{
echo 'Error!';
}
}
?>
VIEW.PHP
<!DOCTYPE html>
<html>
<?php
\t include('connect-db.php');
\t \t \t $sql="SELECT * FROM users";
\t \t \t $result =mysql_query($sql);
\t \t
\t \t \t {
\t \t \t \t ?>
<table>
\t <thead>
\t \t \t <tr>
\t \t \t <th span style="font-weight: normal;">Contrat</th>
\t \t \t <th span style="font-weight: normal;">Client</th>
\t \t \t <th span style="font-weight: normal;">Step</th>
\t \t \t </tr>
\t </thead>
\t \t \t
\t \t \t <?php
\t \t \t }
\t \t while ($data=mysql_fetch_assoc($result)){
?> \t
\t <tbody>
<tr>
\t \t \t <td><?php echo $data['contract'] ?></td>
\t \t \t <td><?php echo $data['client'] ?></td>
\t \t \t <td><?php echo $data['step'] ?></td>
\t \t \t <td><a href="edit.php?contract=<?php echo $data['contract'] ?>"><input type="button" value="Change"></a></td>
\t \t \t </tr> <?php } ?>
</tbody>
</table>
</body>
</html> \t
REGISTER.PHP
<!DOCTYPE html>
<html>
<form id="base" method="post" action="insert.php">
\t \t \t <br>
\t \t \t <br>
\t \t \t \t <input data-validate="number" id="contract" name="contract">
<input data-validate="text" id="client" name="client">
\t \t \t \t <select name="step">
\t \t \t \t \t <option value="option1">OPTION1</option>
\t \t \t \t \t \t <option value="option2">OPTION2</option>
\t \t \t \t </select>
\t \t \t <button data-validate="submit">Register</button>
</form>
</body>
</html>
它不工作,因爲我在迪通splay.php關於它將顯示的條目的一些信息,但我不知道怎麼做。 –
如果你想要的話,你可以通過url這樣的標題發送值(「Location:display.php?id ='yourid''」) ; –
我試圖做到這一點,但一個小問題,我不知道爲什麼。我有一個cotract - 2341,當我通過(「Location:display.php?contract ='2341'」);它給了我一個URL-http://localhost/form/display.php?contract =%272341%27和EMPTY PAGE。所以它從無處添加了272。 –