|
|
Due to the volume of spam happening on our forums, posting is now restricted to verified members only. If you're not verified, drop us a note with your username.
|
|
Home > FlexCMS Support Forum > User Help > General Support Requests > Working with FORMS on a page
FlexCMS Support Forum
Working with FORMS on a page Started March 11, 2008 @ 3:21pm by Wolf
|
Post Message |
Wolf
Posts: 65 |
|
|
Working with FORMS on a page | March 11, 2008 @ 3:21pm | I'm working on creating an HTML form on a page. After the form is filled in by the user, I'd like to process it and then return back to the same form with the results displayed on the page with the form.
In normal HTML I'd do something like this to redirect myself back to the same page:
Code
<form action ="<?php print $PHP_SELF?> method="POST"> |
|
When I try this, Flex displays the following message instead of the page:
Code
Error Displaying Page
We're sorry, but the requested page or function either could not be located, has passed or not yet started its viewing period, or your permissions are not sufficient to view it. Please go back and try again, and contact the webmaster if you believe this to be in error. |
|
Any suggestions as to what form action I should used to re-enter the page?
Thanks!
Cheers, Wolf |
|
|
|
Last Edit: March 11, 2008 @ 3:23pm by Wolf | |
|
|
|
| |
DCSun Administrator
Posts: 625 |
|
|
| March 11, 2008 @ 5:13pm | Wolf,
The $MainURL value contains the site domain name and script name (ie: http://www.yourdomain.com/index.php), so if you'll know the name of the page you could do action="'.$MainURL.'/pages/pagename".
Does that help you out?
David
FlexCMS v3.2 Has Been Released! |
|
|
|
|
|
|
| |
Wolf
Posts: 65 |
|
|
| March 11, 2008 @ 11:02pm | Hi David,
Thanks for pointing me in the right direction! It's exactly what I'm looking for.
For whatever reason, I ended up having to include "/index.php" to the string you gave me, coding it as:
Code
<form action="<?php '.$MainURL.'?>/index.php/pages/yourPageNameGoesHere.html" method="POST"> |
|
For those interested in the technique... a nonsense example of it working follows:
Code
$num_to_guess = 99; $message = ""; if (!isset($guess)){ $message = "Welcome to the guessing machine!"; } elseif ($guess > $num_to_guess){ $message = "$guess is too big!"; } elseif ($guess < $num_to_guess){ $message = "$guess is too small!"; } else { $message = "Well done!"; } print $message ?>
<form action="<?php '.$MainURL.'?>/index.php/pages/yourPageNameGoesHere.html" method="POST"> Type in your guess here: <input type="text" name="guess"> </form> |
|
One more question David, is there a Flex variable that contains the current page name (so I don't have to hard code it in the script at all)?
Thanks bunches! U Rock.
Cheers, Wolf |
|
|
|
Last Edit: March 14, 2008 @ 12:03am by Wolf | |
|
|
|
| |
Wolf
Posts: 65 |
|
|
Querying user records via a form | March 12, 2008 @ 12:26am | Got the production code working!
Here's the deal...
I added custom fields to my user records and needed to be able to use a form to perform queries and return all matching records while re-displaying the form for more queries.
Code
$message = ""; if (!isset($block)){ $message = "List neighborhood watch block houses [home = block 23]."; } elseif ($block < 1){ $message = "Error: block number [$block] cannot be less than 1"; } elseif ($block >100){ $message = "Erorr: block number [$block] cannot be greater than 100"; } else { $message = "Searching for BLOCK NUMBER [$block]"; } ?>
<form action="<?php '.$MainURL.'?>/index.php/pages/test_block_query.html" method="POST"> Type block number here: <input type="text" name="block"> </form
<?PHP $query55="SELECT * FROM `"."core-Users` WHERE Custom2 = "."\"Block $block\" order by `Custom1` asc, `Address2` asc, `Address1` asc";
print '<div><b>'.$message.'</b><br><br></div>'; print '<div>'.$query55.'</div>';
$result55 = mysql_query($query55) or die (mysql_error());
if (mysql_num_rows($result55) > 0) { print '<div>mysql_num_rows = '.mysql_num_rows($result55).'</div><br>';
while ($row55 = mysql_fetch_array($result55)) { print $row55['Custom1'] .', '; print $row55['Custom2'] .', '; print $row55['Address1'] .' '; print $row55['Address2'] .' '; print $row55['Address3'] .', ';
print $row55['FirstName'] .' '; print $row55['LastName'] .', '; print $row55['Email'] .', '; print $row55['Phone'] .'<br>';
$row55_custom1 = $row55['Custom1']; // save section number } }; |
|
The code's still a bit rough, but I'll work on tidying it up and adding more form options. But the basic idea floats!
I couldn't have done it without the excellent support from the FlexCMS staff!
Many thanks.
Wolf
|
|
|
|
Last Edit: March 12, 2008 @ 12:28am by Wolf | |
|
|
|
| |
DCSun Administrator
Posts: 625 |
|
|
| March 12, 2008 @ 2:27pm |
Quote (Wolf)
One more question David, is there a Flex variable that contains the current page name (so I don't have to hard code it in the script at all)? |
|
Yes, you have a few options. You can access the whole thing as sent by the server with the $QS variable. That might be what you were looking for initially. $QSData will also give you the whole query string portion after the domain name and script name (everything after the ? or / depending on how yours is set up). And finally you can access all the portions of the query string individually with the $Arguments1, $Arguments2, etc variables. So in this case, $Arguments1 would be "pages", and $Arguments2 would be the name of your page.
I'm slightly concerned about why you had to add "/index.php" on the end of $MainURL. Perhaps you're in a function and didn't globalize the $MainURL variable? It should definitely include that already. You can see what $MainURL contains with a print statement (just a basic "print $MainURL") to see where you're at.
I don't know how much of your example code you sent, but if those things such as $block are just coming from a form element called "block" you'll only get that to work on certain systems (those with PHP Register Globals enabled). You can also make use of the FlexCMS form processing function if you like. Details on it are available here
David
FlexCMS v3.2 Has Been Released! |
|
|
|
|
|
|
| |
Wolf
Posts: 65 |
|
|
| March 14, 2008 @ 12:24am | David,
Yep, the code I displayed above is the entire contents of a page with Process PHP code set to enabled.
I included the print statement (2x) to display $mainURL as you suggested.
I included it BEFORE my <form> tag and indeed it does show
Code
http://mysite.com/index.php |
|
I included it AFTER my <form> tag and it also shows
Code
http://mysite.com/index.php |
|
BUT, when I include it in the actual form action tag... I end up with a page not found and the index.php portion of the variable is missing? Very curious.
The entire page contents is:
Code
$message = ""; if (!isset($block)){ $message = "List neighborhood watch block houses [home = block 23]."; } elseif ($block < 1){ $message = "Error: block number [$block] cannot be less than 1"; } elseif ($block >100){ $message = "Erorr: block number [$block] cannot be greater than 100"; } else { $message = "Searching for BLOCK NUMBER [$block]"; }
print '<div>MainURL=['.$MainURL.']</div>'; ?>
<form action="<?php '.$MainURL.'?>/index.php/pages/test_block_query.html" method="POST"> Type block number here: <input type="text" name="block"> </form
<?PHP $query55="SELECT * FROM `"."core-Users` WHERE Custom2 = "."\"Block $block\" order by `Custom1` asc, `Address2` asc, `Address1` asc";
print '<div>MainURL=['.$MainURL.']</div>'; print '<div><b>'.$message.'</b><br><br></div>'; print '<div>'.$query55.'</div>';
$result55 = mysql_query($query55) or die (mysql_error());
if (mysql_num_rows($result55) > 0) { print '<div>mysql_num_rows = '.mysql_num_rows($result55).'</div><br>';
while ($row55 = mysql_fetch_array($result55)) { print $row55['Custom1'] .', '; print $row55['Custom2'] .', '; print $row55['Address1'] .' '; print $row55['Address2'] .' '; print $row55['Address3'] .', ';
print $row55['FirstName'] .' '; print $row55['LastName'] .', '; print $row55['Email'] .', '; print $row55['Phone'] .'<br>';
$row55_custom1 = $row55['Custom1']; // save section number } };
|
|
I believe I'm running the same code/server setup as you and Otter... aren't we all using BC - a day at the beach?
|
|
|
|
|
|
|
| |
DCSun Administrator
Posts: 625 |
|
|
| March 14, 2008 @ 8:43pm | Ah yes the wonderful beach with the occasional tidal wave!
I've not used the format where PHP is turned off and on throughout an HTML page as much as I probably should to become familiar with it, but my understanding is those sections still need to be properly formatted PHP code. So for this section:
Quote
<form action="<?php '.$MainURL.'?>/index.php/pages/test_block_query.html" method="POST"> |
| should it not be
Code
<form action="<?php print $MainURL; ?>/pages/test_block_query.html" method="POST"> |
| ?
David
FlexCMS v3.2 Has Been Released! |
|
|
|
|
|
|
| |
Wolf
Posts: 65 |
|
|
| March 14, 2008 @ 10:13pm | Of course! That does the trick. I'll be the first to admit I'm really just hacking in the dark most of the time! <g>
I really appreciate your feedback and help.
Learning more each day!
FlexCMS and support is da'bomb.
Cheers, Wolf |
|
|
|
|
|
|
| |
DCSun Administrator
Posts: 625 |
|
|
| March 14, 2008 @ 11:34pm | I'm a big fan of the trial and error learning method myself!
David
FlexCMS v3.2 Has Been Released! |
|
|
|
|
|
|
|
|
|
| MEMBERS
|
|
|