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> 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. 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
Archived
This topic is now archived and is closed to further replies.