trassalg Posted August 5, 2007 Share Posted August 5, 2007 I've got the following page that is used to retrieve entries from a database and put the values in their respective fields for the user to then edit and UPDATE on the database. It's working but first I have to press Submit, then when that page loads I have to click Edit. Is there a way to avoid this extra step of having to select Edit on the followup page? Any ideas on how I can get this to work? It doesn't seem like a difficult function to add, but for some reason I'm lost. Also right now when I want to edit articles the form fields are sent to their respective fields via a GET command, but with large articles this complicates things as URL's have max limit... sometimes not allowing the full article text. Yet I can't seem to get the POST function to work properly on this. Any help? walkThru_edit.php <html> <head> <title>Baso de datos de Rodolfo</title> <link href="styles/cal.css" rel="stylesheet" type="text/css"> <script type="text/javascript"> function confirmDelete() { return confirm("¿Estas seguro que lo queres borrar?"); } </script> <script language="javascript" type="text/javascript" src="tinymce/jscripts/tiny_mce/tiny_mce.js"></script> <script language="javascript" type="text/javascript"> tinyMCE.init({ mode : "textareas" }); </script> <?php include("includes/misc.inc"); include("includes/connection.inc"); include("includes/menuBar.php"); $result = mysql_query("SELECT * FROM articleTable ORDER BY articleIDNumber"); while ($row = mysql_fetch_array($result)) { } $ud_id = $_POST['articleIDNumber']; $ud_title = $_POST['articleTitle']; $ud_text = $_POST['articleText']; $ud_author = $_POST['author']; $ud_author2 = $_POST['author2']; $ud_source = $_POST['source']; $ud_source2 = $_POST['source2']; ?> </head> <body> <table align="center" border="1" width="850"> <form method="post" action="walkThru_update.php"> <tr> <td colspan="4" align="center"><h1>Walk Through articles</h1></td> </tr> <tr> <td colspan="3"></td> <td rowspan="8" colspan="2" height="400" width="100">Categories:<br><br><div style="height: 400px; width: 300; overflow: auto"><?php include("categories_edit.php"); ?></div></td> </tr> <tr> <td>Article ID</td> <td><input type="text" name="articleIDNumber" value="<?php echo "$articleIDNumber"; ?>"></td> </tr> <tr> <td>Article Date</td> <td><input type="text" name="dateOfArticle" value="<?php echo "$dateOfArticle"; ?>"></td> </tr> <tr> <td>Author</td> <td><input type="text" name="author2" value="<?php echo "$author"; ?>"><font color="#FF0000"><strong> O </strong></font><?php include("dropdown_author_add.php"); ?></td> </tr> <tr> <td>Source</td> <td><input type="text" name="source2" value="<?php echo "$source"; ?>"><font color="#FF0000"><strong> O </strong></font><?php include("dropdown_source_add.php"); ?></td> </tr> <tr> <td>Title</td> <td><input type="text" name="articleTitle" value="<?php echo "$articleTitle"; ?>"></td> </tr> <tr> <td>Text</td> <td><textarea cols="50" rows="20" input type="text" name="articleText"><?php echo "$articleText"; ?></textarea></td> </tr> <tr> <td></td> <td align="center"> <table> <tr> <td width="20%"></td> <td width="20%"></td> <?php include("includes/misc.inc"); include("includes/connection.inc"); $result = mysql_query("SELECT * FROM articleTable WHERE articleIDNumber=$articleIDNumber ORDER BY articleIDNumber"); while ($row = mysql_fetch_array($result)) { ?></td> <td width="20%" align="center"><input type="Submit" value="Submit"></td> <td width="20%"></td> <td width="20%"></td> </tr> <tr> <td width="20%"></td> <td width="20%" align="center"><a href="walkThru_edit.php?articleIDNumber=<? echo $row['articleIDNumber']; ?>&dateOfArticle=<? echo $row['dateOfArticle']; ?>&articleTitle=<? echo $row['articleTitle']; ?>&articleText=<? echo $row['articleText']; ?>&author=<? echo $row['author']; ?>&source=<? echo $row['source']; ?>">Edit</a></td> <td width="20%"></td> <td width="20%" align="center"><a href="walkThru_delete.php?articleIDNumber=<? echo $row['articleIDNumber']; ?>" onClick="return confirmDelete()">Delete</a></td> <td width="20%"></td> </tr> </table> </td> </tr> <? } // Closes While Loop ?> </form> </table> </body> </html> walkThru_update.php <html> <head> <title>Baso de datos de Rodolfo</title> <link href="styles/cal.css" rel="stylesheet" type="text/css"> <?php include("includes/misc.inc"); include("includes/connection.inc"); include("includes/menuBar.php"); // CHECK POST VALUE EXIST if(isset($_POST['categories'])) { $categories=$_POST['categories']; // IF YES, COUNT array $nb_categories=count($categories); // MAKE SURE THAT EVERY VALUE OF THE array IS [a-z] for ($i=0; $i<$nb_categories; $i++) { } unset($nb_categories); } // IF NOT, array NULL else { $categories=array(); } // Connect information, separated by commas for insertion into database $categories_for_db = implode(",", $categories); $ud_id = $_POST['articleIDNumber']; $ud_title = $_POST['articleTitle']; $ud_text = $_POST['articleText']; $ud_author = $_POST['author']; $ud_author2 = $_POST['author2']; $ud_source = $_POST['source']; $ud_source2 = $_POST['source2']; $ud_categories = $_POST['categories']; if ($ud_author == "-----") { $ud_author_db = $ud_author2; } else { $ud_author_db = $ud_author; } if ($ud_source == "-----") { $ud_source_db = $ud_source2; } else { $ud_source_db = $ud_source; } $query="UPDATE articleTable SET articleTitle='$ud_title', articleText='$ud_text', categories='$categories_for_db', author='$ud_author_db', source='$ud_source_db' WHERE articleIDNumber='$ud_id'"; mysql_query($query); mysql_close(); ?> <meta http-equiv="refresh" content="1;url=walkThru.php"></head> <body> <br><br><br><br><br><br><br><br><br> <? echo "<div align=center><h3>Actualizado con exito!</h3><br><br><h4>Re-enviandote a la pagina anterior...<blink>|</blink></h4></div>"; ?> </body> </html> Quote Link to comment https://forums.phpfreaks.com/topic/63413-replacing-get-with-post-and-auto-filling-form-fields/ Share on other sites More sharing options...
steelmanronald06 Posted August 5, 2007 Share Posted August 5, 2007 your problem is in the edit. Your trying to apply data to a variable from the database via post. Try this: $result = mysql_query("SELECT * FROM articleTable ORDER BY articleIDNumber"); while ($row = mysql_fetch_array($result)) { $ud_id = $row['articleIDNumber']; $ud_title = $row['articleTitle']; $ud_text = $row['articleText']; $ud_author = $row['author']; $ud_author2 = $row['author2']; $ud_source = $row['source']; $ud_source2 = $row['source2']; } Then take those variables in put in a hidden form so that you can POST them to the next page: <form name="update" method="post" action="walkThru_update.php"> <input type="hidden" name="ud_id" value="$ud_id" /> <input type="hidden" name="ud_title" value="$ud_title" /> etc...etc...etc... <input type="submit" name="submit" value="Update" /> </form> You get the picture, right? That should fix you up. Try it and see. You might have to make minor edits to it. Quote Link to comment https://forums.phpfreaks.com/topic/63413-replacing-get-with-post-and-auto-filling-form-fields/#findComment-316119 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.