I have a page that offers the user results. From that page there are additional sort options and advanced search options that are submitted by POST by AJAX to a script and the output is inserted into a div using jquery.
Once the user clicks one of the results, they are redirected to the details page. When I click back from that page it doesnt load says form submission error.
Not sure what to be looking for all the stuff I have seen is for when there are simply multiple ajax pages in one page.
Related
I have a web page that loads all the data from a mysql database called datalist.php
From this page I can edit record by record with a button that redirects you to an editdata.php page adapted to the fid of the record.
Once edited as they want to see the changes, I don't redirect them to the main one letting them see the changes and simply clicking back or with a button they return to the datalist.php without any problem.
The button is this
echo "<p id='parrafo'><a style='padding:1px 20px'class='button rounded-0 primary-bg text-white w-0 btn_1 boxed-btn' href='javascript:history.back() '><--</a></p>";
PROBLEM
I added a search engine where the displayed data can be filtered.
When they use the search engine from datalist.php, I direct them to a page called search engine.php where, through a post method, I store what they are looking for in a variable and the data that users want appears.
But when they edit a filtered record, it is edited without problems, but when they go back, they return to the search engine.php and the message appears:
"Confirm form resubmission In order to display correctly, this web page needs the data you entered earlier. You can submit that data again, but that will cause the page to repeat all previous actions. Press Reload to submit the data and display the page.
Hit the page refresh button to resubmit the data needed to load the page."
Of course, if they update, they come back when the filtered data comes out.
Isn't there any way to store the variable used in the search so that when I go back I don't get this error or any solution??
simple! when user will submit form for that variable instead of making post request
option1: just use get request __url__?variable=... but this will not remember the variable when you go back
option2: store the variable in the cookie and just go to next page (eg. window.location.href = '...';). and in next page access the cookie from php.
If you are wanting to show the form to the user as a confirmation, but without the possibility of another post, then remove the form element and the button. Display all other boxes as they are (with the values populated from the POST array).
And display another message telling them that it has been successful.
You are using PHP, you can achieve this easily with it. If you are unsure, then post a short version of your code in a separate question.
I've got a section on every page of my site which allows the user to set a reminder. It loads the appropriate form on the page when the $addtracker variable is set in the url using:
$current_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";?>
Add reminder
It works on every page except pages which rely on POST data, such as a search results page. When the link is clicked on these pages, the POST data disappears and so I get 0 results in the search and $_POST data not found errors.
How can I reload the current page with the POST data intact?
You should use form with method="GET"
Do not use link , use form with button.
Ive got a member search form that searches users on my site. The form method is get.
The results are displayed using Ajax on the same page. The page is not reloaded.
If a user clicks on a search result, then the appropriate page is opened in the same tab.
The problem comes when a user clicks back. Because the search result has opened in the same tab, clicking back returns you to the page with the search form, but all search results are lost. The user therefore has to start the search again.
The only solution i can think of is to not use ajax and post the search terms to the url. But thats not ideal.
Anyone got any better solutions - somehow storing the get variable so that ajax can pick it up again?
I think you used 'history.back()' for back button. You should use get or post to pass inputed variable of user to form search.
I have a standard PHP form that has a series of checkboxes, radio, selects and text. The form works fine and proceeds to a search results page. My problem is that when you click Back browser in any browser the search page shows the previous selects. How do I ensure that the back button displays the form as if its the first time the visitor visits the page?
You can reset form on window.onload or $(document).ready(for jQuery)
function formReset()
{
document.getElementById("formId").reset();
}
you can do one thing.
Using jquery onReady function you can make form reset.
So, whenever user will press back button of browser page will be reload and onReady function your code for form reset will work.
$(document).ready(function() {
$('#myform').get(0).reset();
});
You shouldn't reset it automatically. Provide a reset button.
The back button returns the user to the previous page, in the state he left it. This includes the settings of any form. I'm relying heavily on this feature, cannot count the times this back button saved me from loosing my efforts that went into a textbox for answering questions...
It's a different game if the user is on your result page and clicks a link that takes him to the search page again, but does not use the back button.
i have a search form page, which takes me to reslutant page and show me so me some records acc to search criteria. And by clicking on any of the record it takes me to its details page.
now there i had placed a back button on which i had used js script history.go(-1) to go back to the resultant page while showing the same results i had searched.
but instead it 1st show "CONFORM FORM RESUBMISSION" and after i press F5 then it show me the particular records.
Sounds like your search results page is a POST page. By default those are not cached by the browser, which is why you get that "form resubmit" stuff - the POST has to be reperformed and the page regenerated. Changing it to a GET will eliminate that.
Send you're search form data using GET , then it whont ask you to confirm form resubmission .