[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 254
  • Last Modified:

refresh wipes display?

I have a simple, editable, html table (see attached).

When submit is pressed to save data, the page
is refreshed and the display data is lost.

How can the display be retained after submit?
<td><input type="text" name="r1c1" /></td>
<td><input type="text" name="r1c2" /></td>
<td><input type="submit" value="save"/> </td>
</tr>
<tr>
<td><input type="text" name="r2c1" /></td>
<td><input type="text" name="r2c2" /></td>
<td><input type="submit" value="save"/></td>

Open in new window

0
pillmill
Asked:
pillmill
  • 2
1 Solution
 
Dave BaldwinFixer of ProblemsCommented:
Here's one way.  Save as 'postdata.php' or something '*.php' and run it on your server.
<?php 

$r1c1 = "";
$r1c2 = "";
$r2c1 = "";
$r2c2 = "";

if(isset($_POST["submit"])) {
	if(isset($_POST["r1c1"])) $r1c1 = $_POST["r1c1"];
	if(isset($_POST["r1c2"])) $r1c2 = $_POST["r1c2"];
	if(isset($_POST["r2c1"])) $r2c1 = $_POST["r2c1"];
	if(isset($_POST["r2c2"])) $r2c2 = $_POST["r2c2"];
	}
 ?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>Post Data</title>
</head>
<body>
<h1>Post Data</h1>

<form action="" method="post">

<table border="0" cellpadding="0" cellspacing="0" summary="">
<tr>
<td><input type="text" name="r1c1" value="<?php echo $r1c1; ?>" /></td>
<td><input type="text" name="r1c2" value="<?php echo $r1c2; ?>" /></td>
<td><input type="submit" name="submit" value="save"/> </td>
</tr>
<tr>
<td><input type="text" name="r2c1" value="<?php echo $r2c1; ?>" /></td>
<td><input type="text" name="r2c2" value="<?php echo $r2c2; ?>" /></td>
<td><input type="submit" name="submit" value="save"/></td>
</tr>
</table>

</form>
</body>
</html>

Open in new window

0
 
Mark BradyCommented:
The best way I have ever seen is to use php sessions. Sessions store posted data in session variables so as long as you open a session on the page it will retain the form data in each input field. Here is how you do it. I have made a very quick example with only first and last names just to show you how it keeps the data. Save the attached file "session.php" in the same folder as this php script.

<?php // this is your php script with the form in it.
include("session.php"); // important - don't forget to add this line.

// just for this test
$first = $_POST['first'];
$last = $_POST['last'];
if($first != "" && $last != "") echo "Hello ".$first." ".$last;

// Put all your form processing code here.
?>
<!-- now the form -->
<form method="POST">
Firstname <input name="first" type="text" value="<?php echo $_SESSION['first'];?>" />
Lastname <input name="last" type="text" value="<?php echo $_SESSION['last'];?>" />
<input type="submit" value="Submit" /></form>



That's it. Save it as some name.php and run it. Fill in the two fields and submit the form. session.php
0
 
Mark BradyCommented:
The beauty of doing it this way as opposed to DaveBaldwins method is that you can use this posted data on any other page on your website. As long as you include that session.php file on a php page you can get the data. Whatever the name of your input fields, is the name of the session variable. So on a completely different page you can do this.

<?php
include("session.php");
// some code goes here. Now if you want to know what was posted in that other form just do this:

$first = $_SESSION['first'];
$last = $_SESSION['last'];

// it takes place of the usual $_POST['first']; and it remains in that session variable until you close the browser or you kill the session.

session_destroy();

that will end the session and all variables inside it. Hope this is what you are looking for.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now