在停留在同一页面时使用get变量?
I was wondering if there is a way to use a GET variable while staying on the same page.
I have some php/mysql script that I would like to execute if a particular link is clicked, using a GET variable. However, once the link is clicked, I don't want anything on the page to change, I just want to the script to run behind the scenes.
Right now, when A user is on the search page and adds an item to their favorites all search results disappear, and b/c I am resubmitting
NOTE: The add to favorites link below, links to same page that the user will be on when clicking it.
if(isset($_SESSION['username'])){
echo '<div id="favbutton"><a href="search.php?id='.$id.'"><img src="./image/staricon.png"/>Add to favorites</a></div>';
}
thank you
jQuery has a .get() function that you can use to accomplish this: http://api.jquery.com/jQuery.get/. You can use it to pass any number of GET parameters to your server-side script. If that scripts returns any data, you can implement a callback to determine what to do with the data.
Here is an example of using jQuery .get(). One of the jQuery paradigms is "unobtrusive JavaScript", so it is standard to add event handlers in their own script rather than in the outdated onclick attribute. That said, here's a sample implementation:
jQuery(document).ready(function($) {
$(".clickable").click(function(e) { // Gets all elements with a class of "clickable"
$.get("myScript.php",
{ myGETVar: $(this).attr("src") }, // Passes the "src" of the clicked element as "myGETVar"
function(returnedData) {
alert("The script returned: " + returnedData);
}, "html" // In this case we're expecting the script to return html
);
});
}
That is just a simple example, but it demonstrates how you can attach a click handler to any number of elements (in this case elements with class "clickable") and create an ajax request. This example passes the "src" of the clicked element (say you want to use this with images) and passes that to myScript.php as the GET variable "myGETVar".
I hope this helps!
You have to use AJAX and you can use do that easily using jQuery.Ajax
You have to place a call silently into a server script to add that to favorites and then show user a message on success.