This is not a PHP issue -- it's a javascript issue... try a JS newsgroup or list.
Justin on 05/03/03 1:10 AM, Lars Espelid ([EMAIL PROTECTED]) wrote: > I'm trying to implement the following functionality into the file test.php: > > When I scroll down the page and then hit a button, the page should remember > the scrolled position, refresh the page and then scroll down to the > remembered position. If I knew how many form-schemas there would be on the > page, this would be easy. But I don't so then I need a way to give each form > a unike name and this name I need to use in the function hentKoordinat(). > But when hentKoordinat is executed the variable containing the form-name is > not yet set. > > When someone hits a button in one of the form-schemas the following > happens: > 1) hentKoordinat() is executed. The form-schemas hidden field named yKoord > gets the value: the amunt of pixels scrolled in y-direction. This doesn't > work because $teller is not yet set (needed to specify which form is > submitted). > 2)the page is refreshed and $teller is set to a number whisch says which > form is submitted and $yKoord is set to "the amunt of pixels scrolled in > y-direction". > 3)onload in body calls the function mScroll which scrolls the page to where > it was when someone clicked the button. > > Hoping someone can help, maybe I need to do this a totally different way? > > Thanks! > > Lars > > > Tried to explain the code in test.php: > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" > "http://www.w3.org/TR/html4/loose.dtd"> > <html> > <head> > <title>Untitled Document</title> > <script language="JavaScript" type="text/javascript"> > <!-- > > function getPageScroll(){ > > //this function returns scrollX and scrollY as probertys of > getPageScroll. ScrollX and scrollY > //contains the amount of pixels the page has been scrolled in x and y > direction. > > var X, Y; > if(typeof window.pageXOffset == 'number'){ > X = window.pageXOffset; > Y = window.pageYOffset; > }else{ > if((window.document.compatMode)&& > (window.document.compatMode == 'CSS1Compat')){ > X = window.document.documentElement.scrollLeft; > Y = window.document.documentElement.scrollTop; > }else{ > X = window.document.body.scrollLeft; > Y = window.document.body.scrollTop; > } > } > return {scrollX:X,scrollY:Y}; > } > function hentKoordinat() { > > // this function uses getPageScroll() to find pixels scrolled in y-direction > and inserts this value into the "hidden-form-value" named yKoord in the form > schema which holds the button clicked (form<?php echo $teller; ?>). > > > //*****Here the problem arises. The first time you click a button, $teller > is not set. This method is executed before the page is refreshed. The value > $teller is set when the page is refreshed.***** > > document.form<?php echo $teller; ?>.yKoord.value = getPageScroll().scrollY > } > > function mScroll() { > > //this function scrolls the page so many pixels that $yKoord holds in the > y-direction. > //to avoid error messages I set $yKoord like 0 if it is empty (scrolls > nothing). > > <?php if(!isset($yKoord)) $yKoord=0; ?> > <?php if($yKoord=='') $yKoord=0; ?> > self.scrollTo(0,<?php echo $yKoord; ?>) > } > > //--> > </script> > </head> > > <body onLoad="mScroll()"> > <?php echo "<p> Ykoordinat: " . $yKoord . "<p>"; > echo "Teller: " . $teller; > > for($i=0; $i<150; $i++) { > //prints 150 line breaks so that the page gets scrollable (the content does > not fit the monitor-area) > echo '<br>'; > } > for($teller=0; $teller<2; $teller++) { > //prints two form-schemas. Later on I will print a varying amount of > form-schemas (depends on the amunt of > //data in a MySQL-table) > //The form name includes $teller so that each form-schema gets a unike name > and I know which > //$yKoord to update in hentKoordinat(). $teller and $yKoord is passed on as > variables when the page refreshes, > //so that I know which form's button1 is submitted and how many pixels there > are to scroll when onload="mScroll()" > // in body is called (uses $yKoord). > ?> > <form action="test.php" name="form<?php echo $teller; ?>" onsubmit="return > hentKoordinat()"> > <input type="hidden" name="teller" value="<?php echo $teller; ?>"> > <input type="hidden" name="yKoord"> > <input name="button1" type="submit" value="Send input"> > </form> > <?php $teller++; ?> > <?php > } //for($teller=0; $i<2; $i++) { > ?> > </body> > </html> > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php