views:

1420

answers:

4

I have created a form in my application as follows:

<form action="/search/" method="get">
   <input id="search-box" name="search" type="text" size=30 title="Search" value="" />
   <input id="search-submit" type="image" alt="Search" src="/images/search-button.gif" /> 
</form>

But when I am submitting my form then URL is created as below:

mysitename.com/search/?search=hello&x=0&y=0

Can anyone please tell me why this x and y is coming in my URL. On more thing instead of image button if I am changing my form code as below then its working fine,

<form action="/search/" method="get">
   <input id="search-box" name="search" type="text" size=30 title="Search" value="" />
   <input id="search-submit" type="submit" value="Search"/> 
</form>

but I need an image button to make my form look good. Please tell me how to remove these x and y parameteres from URL.

+2  A: 

They are the mouse coordinates of the click. I don't believe there's any way to prevent them - if you use an <input type='image'> then you get them. Why is it a problem? Can't you just ignore them?

Answering Prashant's comment: Digg are adding an onclick handler to the <input> (or possibly an onsubmit handler to the form) which builds the neat-looking search URL and redirects the browser to that URL, and then returns false to prevent the <input> from submitting the form itself. If you turn off JavaScript you'll see that you do get the x and y parameters in the URL. Clever!

RichieHindle
I want to ignore them caz my users shares search URL of my website accross the web and hence if the x and y will come in my url then it will be a long URL which will not look good as well as its not well for SEO too. And I think they can be removed How? I don't know but Digg is doing this, just have a look at thier search page: http://digg.com/search
Prashant
Your answer looks good, I think javascript is the way to strip these parameters....
Prashant
+7  A: 

You'll always get mouse co-ordinates for a submit button type="image"

You can use a standard submit type button and just apply styles to it to change the look.

<input type="submit" id="search-submit" value=""
    style="background-image: url(/images/search-button.gif); border: solid 0px #000000; width: WIDTHpx; height: HEIGHTpx;" />
Eoin Campbell
Finally I have adopted your solution, instead of coding another 5-6 or more.. lines of javascript code :)
Prashant
+1  A: 
document.getElementById("formid").submit = function() {
    location = "/search/?search=" + encodeURIComponent( document.getElementById("search-box").value );
    return false;
};
Chad Grant
A: 

You could make your server-side search code strip off the x and y parameters from its URL, and redirect back to itself. That would work for people without JavaScript enabled.

RichieHindle
Do you think that its a goood solution. I have to make two redirects whereas normally I am making only one.
Prashant
It's not good in that it involves an extra round-trip to the server, but it's good in that it's simple and it works for everybody.
RichieHindle
Actually we can't implement a method which suit simple to coders, but will increase the overhead on the server. :)
Prashant