Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I have my custome theme in wordpress.This is the path of my custome theme. C:\wamp\www\wordpress2\wp-content\themes\sscy1002\sscy1002

I have created a Page in wordpress which contains some form elements. Here is my Page Code :

 <form action="<?php bloginfo('stylesheet_directory'); ?>/Query.php" enctype="multipart/form-data" method="post" name="contact">
<label for="author">Name:</label> <input class="required input_field" id="author" type="text" name="author" />
    <div class="cleaner h10"></div>
    <label for="email">Email:</label> <input class="validate-email required input_field" id="email" type="text" name="email" />
    <div class="cleaner h10"></div>
    <label for="subject">Subject:</label> <input class="input_field" id="subject" type="text" name="subject" />
    <div class="cleaner h10"></div>
    <label for="text">Message:</label> <textarea class="required" id="text" cols="0" name="text" rows="0"></textarea>
    <div class="cleaner h10"></div>
    <label for="image">Image:</label><input type="file" name="file" />

    <input class="submit_btn float_l" id="submit" type="submit" name="submit" value="Send" />
    <input class="submit_btn float_r" id="reset" type="reset" name="reset" value="Reset" />

    </form>

And here is my Query.php code under C:\wamp\www\wordpress2\wp-content\themes\sscy1002\sscy1002 directory :

<?php
get_header();
?>

<?
$name=$_POST['author'];
$email=$_POST['email'];
$subject=$_POST['subject'];
$message=$_POST['text'];
$image=$_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'],"imagess/".$image);
echo $name."<br/>";
echo $email."<br/>";
echo $subject."<br/>";
echo $message."<br/>";
echo "<img src='imagess/".$image."' alt='image'>";
?>
<?php
get_footer();
?>

But when I am submitting form I am getting fatal error :

Fatal error: Call to undefined function get_header() in C:\wamp\www\wordpress2\wp-content\themes\sscy1002\sscy1002\Query.php on line 2

Please help me how to pass transfer data from one page to another file(or if Page) in wordpress. I also searched answer on google but and tried all the way which I got from google but not working.

Sorry about wrong formatting of Question. Please help me!!!! Thanks!!!

share|improve this question
3  
Create Query.php as page template and add it to page then pass url of this page in form action attribute.codex.wordpress.org/Theme_Development#Custom_Page_Templates –  Vinod Dalvi Apr 12 '13 at 4:23
    
There's no need to create a non-standard WP template file for this. Why not just place your form functionality into functions.php where it should be? tommcfarlin.com/sending-data-post –  sagalbot Feb 19 at 23:33
add comment

3 Answers

You can try to use functions.php to handle the form submission and send the data via AJAX.

Add a hidden field in your form with the action to be taken (on functions.php):

<input type="hidden" name="action" value="save_contact"/>

In you footer.php add the jQuery code to handle the AJAX request:

jQuery('#your-form').submit(ajaxSubmit);
function ajaxSubmit(e){
    e.preventDefault();
var formData = jQuery(this).serialize()

jQuery.ajax({
    type:"POST",
    url: "<?php bloginfo('url'); ?>/wp-admin/admin-ajax.php",
        data: formData,
        success: function(response){
       //SHOW CONFIRMATION
    },
    error: function(error){
       //SHOW ERROR MESSAGE
    }
});
return false;
}

Finally, In you functions.php file:

add_action('wp_ajax_save_contact', 'save_contact');
add_action('wp_ajax_nopriv_save_contact', 'save_contact');
function save_contact(){
     //Do whatever you want here...
}

Hope it helps! :)

share|improve this answer
add comment

add following code before get_header()

require_once('../../../wp-load.php');

you getting error because your file is not for a page created with wordpress its just a php file, you need to include load.php file to load all the required functions.

share|improve this answer
add comment

Please replace form action path from <?php bloginfo('stylesheet_directory'); ?> to <?php bloginfo('template_directory'); ?>

Then check it..

share|improve this answer
1  
Please explain, how that would prevent the Call to undefined function error, the OP is getting. –  Johannes Pille Jul 17 '13 at 12:33
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.