Issues posting from front end
-
here is my form code:
<div id="postbox"> <form id="new_post" name="new_post" method="post" action=""> <p><label for="submitter">Submitted By</label><br /> <input type="text" id="submitter" value="" tabindex="1" size="20" name="submitter" /> </p> <p><label for="email">Email Address</label><br /> <input type="text" id="email" value="" tabindex="2" size="20" name="email" /> </p> <p><label for="title">Song Title</label><br /> <input type="text" id="title" value="" tabindex="3" size="20" name="title" /> </p> <p><label for="composer">Composed By</label><br /> <input type="text" id="composer" value="" tabindex="4" size="20" name="composer" /> </p> <p><label for="performer">Performed By</label><br /> <input type="text" id="performer" value="" tabindex="5" size="20" name="performer" /> </p> <p><label for="tablature">Song Body</label><br /> <textarea id="tablature" tabindex="6" name="tablature" cols="50" rows="6"></textarea> </p> <p><?php wp_dropdown_categories( 'show_option_none=Category&tab_index=7&taxonomy=category&exclude=5' ); ?></p> <p align="right"><input type="submit" value="Submit" tabindex="8" id="submit" name="submit" /></p> <input type="hidden" name="action" value="new_post" /> <?php wp_nonce_field( 'new-post' ); ?> </form> </div>and the backend:
if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && ($_POST['action']== 'new_post')) { $has_errors = false; $title = $_POST['title']; $tablature = $_POST['tablature']; $performer = $_POST['performer']; $composer = ( $_POST['composer'] ); $cat = array( $_POST['cat'] ); if(!isset($title)) { echo '<div class="error">Title required.</div>'; $has_errors = true; } if(!isset($tablature)) { echo '<div class="error">Description required.</div>'; $has_errors = true; } if(!isset($performer)) { echo '<div class="error">Performer required.</div>'; $has_errors = true; } if(!isset($composer)) { echo '<div class="error">Performer required.</div>'; $has_errors = true; } if($cat == -1) { echo '<div class="error">Select a category.</div>'; $has_errors = true; } $tags = $_POST['post_tags']; if (!$has_errors){ // Save <title> by: <performer> $title .= " by " .$performer; // Save Composed by: <composer> Performed by: <performer> <tablature> $content = "<h4>Composed by: ".$composer."</h4><h4>Performed by: ".$performer."</h4><br/>".$tablature; $new_post = array( 'post_title' => $title, 'post_content' => $content, 'post_category' => $cat, 'post_status' => 'draft' ); wp_insert_post($new_post); // save email and submitter as post meta in custom fields wp_redirect( home_url('/thank-you/') ); } }Most things work well. However, error messages do not work. If I submit an empty form, it happily submits, completely empty or partially filled. To combat this, I’ve implemented jQuery validation, which is working just fine, provided SOMETHING has been entered into the form. However, if the form is completely empty it can still be submitted.
Also, I’d like to find a way to incorporate the submitter name, and include it after the <h4>’s.Anyone got any ideas?
Thanks so much!
The topic ‘Issues posting from front end’ is closed to new replies.