Link to home
Create AccountLog in
Avatar of kevbob650
kevbob650Flag for United States of America

asked on

Reload data in div tag

I have a php page with two <div>'s in which I load external php pages. They load fine, but when I try to do a submit in one of the external files, the parent page is populated with only the form data from the div tag page. I thought it would be the same as an iframe but apparently not!
I have the external php page set up like a full html page with form and form action etc. Not sure how to get this working . I had the data in an iframe but I need to do an auto reload every 10 second and I don't want the iframe to reload, hence I'm using a series of <div> that I can refresh individually.
Avatar of Barry62
Barry62
Flag of United States of America image

If you have the action of your external forms set to the parent page, you will need to create and populate hidden fields in the external forms for the data you want to re-populate on the parent page.  PHP will only keep data from the currently submitted form.

You could use cookies to keep your parent page data.
Avatar of kevbob650

ASKER

I was thinking I would have the action of the external page to be itself as I would in an iframe application. So do I need to set the action to the parent page?
Can you post a like to the page? It sounds like the structure is invalid which will probably create all kinds of problems anyway.

Cd&
I can't get you a link, but here's the structure (can't seem to attach a file?)...



Parent page:

<html>
<head>
<script type=”text/javascript”>
$(document).ready(function(){
      $("#dailyCounts").load("dailyCounts.php");
      $("#countSummaries").load("countSummaries.php");
      $("#history").load("history.php");
});
</script>
<table>
    <tr>
             <td>
      <div id=”dailyCounts”></div>
       </td>
       <td>
      <div id=”countSummaries”></div>
       </td>
   </tr>
   <tr>
      <td>
      <div id=”history”></div>
     </td>
   </tr>
</table>


dailyCounts.php
page with mysql, refesh routine updating every 10 seconds:
<script>
    $(document).ready(function() {
        setInterval("location.reload(true)", 10000);  // every 10 seconds        
    });
</script>


countSummaries.php
page with mysql queries
<form> with <select> box and submit to update display
no auto_reload routines


history.php
page with mysql queries
<form>
<select> boxes and submit to update display
and a jqery refresh routine
<script>
    $(document).ready(function() {
        setInterval("location.reload(true)", 30000);  // every 30 seconds        
    });
</script>
I started to do a long winded technical exploration which was getting confused when I realized that this can be put quite simply.  Content in a div can never be a window object.  The content of an iframe is always a window object.  To maintain the context you need, you need the a parent window to child window relationship.

Barry's suggestion of cookies is dicey, but you might be able to make it work.  Trying to make a div behave like an iframe is like expecting a pet dog to run in the Kentucky Derby.

Cd&
LOL,  so that being said, what's the best way to accomplish this?  iframes?  if so, how can I prevent the parent page from flickering when the iframes reload?  frustrating!
ASKER CERTIFIED SOLUTION
Avatar of COBOLdinosaur
COBOLdinosaur
Flag of Canada image

Link to home
membership
Create an account to see this answer
Signing up is free. No credit card required.
Create Account
What is with the C?  Either it does not give you what you need and we should be looking to see if more can be done, or it solved the problem in which case a C is inappropriate.  


Cd&
no it didn't solve the problem, all it did was send me on to other sources, so the C is appropriate
If it did not solve the problem, it should not be accepted at any grade.  If you found a solution elsewhere, post it and ask CS to accept your comment as the answer, or if you don't want to pursue it further then ask them to delete the question.

Cd&
this is crap, delete the question. I'll always award an A for every solution in the future.