Hmmm…you could potentially do something like this….
1. Create a standard form page and use a custom page template for it. In this case, we’ll call it “contact_form.php”.
2. If you’re using something like Contact Form 7 to create your forms, it will give you a shortcode to use wherever you want that particular form to display. I’m assuming Ninja Form does something similar. Regardless, create whatever forms you want and take note of the short codes.
3. On your individual posts where you’ll link to the contact form page, create a button that says “Contact Form” or something like that. In the HTML, make the button an actual form submission using either GET or POST as the method. Since this isn’t a super-secure thing, you should be fine with GET. Either would be fine, though. The form could include a hidden field to send the post title of the post the user is currently looking at. When the user clicks the “Contact Form” button, they’ll go to the “contact_form.php” page, but the form will send along the name of the post they’ve come from.
4. Now go back to your “contact_form.php” template code and add some php to the start of the page. Have it retrieve the page title of the previous page from the GET/POST variable. Then in the body of the template, run a conditional statement to display a certain form depending on what the previous page was.
That may sound complicated but I wanted to explain it rather than do all the coding for you. This should give you a good starting point, though. You don’t even have to use the post title as the deciding variable if you don’t want to. Perhaps you’ll have a form for a certain category of posts….then you can just include the category as the hidden field in the GET/POST form submission.
There are certainly other ways to do it but that should get you started.