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。 –