From: Daniel C. <dan...@gm...> - 2011-08-07 13:08:10
|
I cannot make it work... So answering your question Bob, yes, the first php page is completely gone, I pass the state to the second page via POST (in the variable $ESTADO); the problem is in the second page where I do the following: echo "<!-- /***** Jmol Embedded Script **** ?php echo $ESTADO; ? **/ -->"; $JMOL = "<script type=\"text/javascript\"> jmolInitialize(\"Jmol-12new\", true); jmolSetAppletColor(\"white\"); var jmolcmds = [ \"load $ZIPtoUSE|$PREFIX-Models_$code/$PREFIX-$code.pdb\", \"set frank off; select all; hbonds off; spin off; wireframe off; spacefill off; trace off; set ambient 40; set specpower 40; slab off; ribbons off; cartoons off; label off; monitor off\", \"set isosurfacePropertySmoothing TRUE\", \"set showAxes true\", \"set appendNew true\", \"frame all\", \"display all\", \"select 1.1; cartoon; set propertyColorScheme 'bwr'; color atoms property temperature ABSOLUTE $range\", \"script Jmol-12new/myJMOLfunctions.spt\" ]; jmolApplet([580,500], jmolcmds.join(\"; \")); </script>"; $JMOL .= "<form><script>jmolButton(\"reset\", \"Original orientation\"); jmolButton(\"move 360 0 0 0 0 0 0 0 20\", \"Rotate X axis\"); jmolButton(\"move 0 360 0 0 0 0 0 0 20\", \"Rotate Y axis\"); jmolButton(\"write image.png\", \"Create image\"); </script>"; $JMOL .= '<script>function restoreState(){jmolScript(document.body.innerHTML)}; jmolButton("[restoreState]", "RESTORE");</script></form>'; Any idea of what can be wrong? Thanks, Daniel 2011/8/7 Robert Hanson <ha...@st...> > > > On Sun, Aug 7, 2011 at 5:41 AM, Daniel Carbajo <dan...@gm...>wrote: > >> OK I am completely lost with this actually... I am sorry for being quite >> dumb but I just don't get it. >> I already have the output of jmolGetPropertyAsString("stateInfo") in a PHP >> variable called $ESTADO in my Second PHP Page (where I have to restore the >> state), so how do I actually restore the state using that variable? I have >> tried the following with 0 success: >> $JMOL .= '<script>jmolButton(\''.$ESTADO.'\', "RESTORE");</script>'; >> $JMOL .= '<script>jmolButton("<?php echo $ESTADO; ?>", >> "RESTORE");</script>'; >> >> The above don't work so how should I actually do it? Thanks for all this >> help and sorry again for being quite slow with this... >> > > It's just that you are doing a rather complicated thing there with the > second PHP page. > > Q: Are you sure this is a situation where the first page is GONE when the > second page is pulled up? This would all be very simple if both pages are > present. That is simply this: > > jmolApplet([500,500], > jmolScript(opener.jmolGetPropertyAsString("stateInfo"))) > > Nothing more than that. This transfers the state from the page that opened > this page to this page's applet. > > The problem with transferring the state they way you are doing it is that > it is filled with quotes and line breaks. So you can't just plug it into a > button call. The trick I use is to embed it into an HTML comment on the > page. You need to write this to that page: > > > <!-- /***** Jmol Embedded Script **** > ?php echo $ESTADO; ? > **/ --> > > > Then your button code should read: > > $JMOL .= '<script>function > restoreState(){jmolScript(document.body.innerHTML)}; > jmolButton("[restoreState]", "RESTORE");</script>'; > > thus running the JavaScript restoreState function, which sends the entire > page HTML to Jmol as a script. Jmol will extract out just the embedded > section and run that as a script. > > Tricky, but this is the way to go. > > Bob > > > > ------------------------------------------------------------------------------ > BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA > The must-attend event for mobile developers. Connect with experts. > Get tools for creating Super Apps. See the latest technologies. > Sessions, hands-on labs, demos & much more. Register early & save! > http://p.sf.net/sfu/rim-blackberry-1 > _______________________________________________ > Jmol-users mailing list > Jmo...@li... > https://lists.sourceforge.net/lists/listinfo/jmol-users > > |