My PHP form is clearing the $_GET parameters in my URL - php

By default, when you visit this page $_GET['page'] is set to 1. I have a search box that allows users to search the same page using $_GET['search'] as the search parameter; however it clears the $_GET['page'] parameter.
Is there a way I can make both parameters stay in the URL when using the search box?
Here's my code:
Search Form:
<form action="page.php?page=1" method="get">
<input type="text" placeholder="Search" name="search" />
</form>
page.php:
<?php
if (isset($_GET['search']) && isset($_GET['page'])) {
// My query goes here
}
?>

Pass the page parameter in as a hidden HTML field.
<form action="page.php" method="get">
<input type="text" placeholder="Search" name="search" />
<input type="hidden" name="page" value="1" />
</form>

In your search form you need a button and you can add an input type hidden and print in his value your $_GET['page'], like this :
<form action="page.php" method="get">
<input type="text" placeholder="Search" name="search" />
<input type="hidden" name="page" value="<?php echo $_GET['page']; ?>" />
<input name="btn" type="submit" value="Send" />
</form>

Related

Double Get Send Data

In this page : page.php?id=value
I've this html's code:
<form action="" method="get">
<input type="text" name="key" />
<input type="submit" name="send />
</form>
It's redirect me to: page.php?key=value , i want to redirect to: page.php?id=value&key=value , how i can do it? I must redirect it to this page with PHP ?
simply,
<form action="page.php" method="get">
<input type="hidden" name="id" value="<?php echo $value ?>">
<input type="text" name="key" />
<input type="submit" name="send" />
</form>
You can have the id as a hidden input in your form
<form action="" method="get">
<input type="hidden" value="<?php echo $my_id; /*Suppose this variable contain your value */ ?>" name="id" />
<input type="text" name="key" />
<input type="submit" name="send" />
</form>
put everything you want on the next page in your form:
<form action="page.php" method="get">
<input type="text" name="id" value="<?php echo $_REQUEST['id'];?>" />
<input type="text" name="key" />
<input type="submit" name="send />
</form>
Really though, you should be using POST to send data, and the above code is NOT secure (allows anything in a url to easily end up in a form that could create some sql injection or XSS type issues.
You need to have the form's action set to the page you want it to submit to. If it is blank it will just submit to the same page.
<form action="page.php?id=value&key=value" method="get">
<input type="text" name="key" />
<input type="submit" name="send />
</form>

Passing a value to current Page

How do I check the url if it has a parameter or not before passing?
I need to pass the value of s on current page.
When passing on current page 'index.php' it would look like this index.php?s=value
How can i pass the value if the url has parameters like index.php?page=1 or index.php?orderby=asc so when i press the search button it would be something like this index.php?page=1&s=value or index.php?orderby=asc&s=value
<form method="get">
<p class="search-box">
<label class="screen-reader-text" for="user-search-input">Search Members:</label>
<input type="search" id="user-search-input" name="s" value="" size="30" placeholder="Search">
<input type="submit" name="" id="search-submit" class="button" value="Search Members">
</p>
</form>
Use php, you can output the param in the form as a hidden value, e.g. to keep the page param
<form method="get">
<input type="hidden" name="page" value="<?php echo htmlspecialchars(isset($_GET['page'])? $_GET['page']:''); ?>" />
Keep the htmlspecialchars when using $_GET['page'], or you will face XSS attacks.
Here, in action whole url will be placed.
<form method="get" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
You should keep current page as a `action along with query string, so that extra parameters will be added at last.
YOu have to include the page incomming parameters in the "action" attribute of you tag.
<?php
if(isset($_GET['s'])
{
*dostuffwiths
"echo <input type='hidden' name='s' value='$s'>";
}
else
{
echo "<input type='hidden' name='s' value='$s'>";
}
?>
Try this
<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="GET">
<p class="search-box">
<label class="screen-reader-text" for="user-search-input">Search Members:</label>
<input type="search" id="user-search-input" name="s" value="" size="30" placeholder="Search">
<input type="submit" name="" id="search-submit" class="button" value="Search Members">
</p>
</form>

Capture the Search text and pass it in a URL when clicked on Submit

I just cant get around this simple requirement. I am new to PHP and need help.
I need to capture the value in a Search Box and then pass it in the URL which opens in a new tab when hit on Submit.
What am I missing here..it seems like I am missing a lot of things for this to work..
<?php
if (isset($_POST["submit"])){
$example = $_post['searchon'];
echo '<a target = '_blank' href=http://www.amazon.in/s/ref=nb_sb_noss_1?url=search-alias%3Daps&field-keywords=.$example.&tag=orientmarketi-21></a>';
}
?>
<form action="index.php" method="post">
<input type="search" name="searchon" id="searchon" />
<input type="submit" name ="submit" />
</form>
try this code instead of your one:
<form action="http://www.amazon.in/s/ref=nb_sb_noss_1" method="get" target="_blank">
<input type="hidden" name="url" value="search-alias=aps" />
<input type="hidden" name="tag" value="orientmarketi-21" />
<input type="text" name="field-keywords"/>
<input type="submit" />
</form>

PHP Send query string with button

I have a form for searching products which will be visible in each page. When the search button is clicked it will redirect to a search.php page. I want to send a query string (parameter) with the content of the search text box when the button is clicked. The code for the form is simple, but here it is:
<form method="post" action="search.php">
<input type="text" id="txtSearch" name="txtSearch" class="searchInput" value="" />
<input type="submit" id="btnSubmit" name="btnSubmit" value="Search" ?>'" />
</form>
I want that when clicked this will redirect to search.php?q=txtSearch. Thanks.
Change "POST" to "GET" on the form element and change the input name parameter to "q".
use :
<form method="get" action="search.php">
<input type="text" id="txtSearch" name="q" class="searchInput" value="" />
<input type="submit" id="btnSubmit" name="btnSubmit" value="Search" />
</form>
<form method="post" action="search.php?q=txtSearch">
<input type="text" id="txtSearch" name="txtSearch" class="searchInput" value="" />
<input type="submit" id="btnSubmit" name="btnSubmit" value="Search" />
</form>
This way submitting the form you'll be redirect to search.php?q=txtSearch and from php you can get the $_POST variable so
$_POST['txtSearch']
$_POST['btnSubmit']
Just use GET instead of POST
<form method="get" action="search.php">
The name of the fields will be the name of the querystring variable. Like this:
?input_name=input_value

How to pass multiple dynamic url parameters to my pagination pages when a user searches the site using PHP & MySQL

I was wondering how can I pass multiple dynamic url parameters to my pagination pages when a user searches the site using PHP & MySQL in order to display their results?
Here is the HTML form.
<form action="search.php" method="post">
<input type="text" name="search" />
<input type="submit" name="submit" value="Search" />
</form>
Here is my pagination link
echo ''. $i .'';
You can add those as hidden input types, or append them to the URL
<form action="search.php" method="post">
<input type="text" name="search" />
<input type="submit" name="submit" value="Search" />
<input type="hidden" name="s" value="<?php echo ($start + $display); ?>" />
<input type="hidden" name="p" value="<?php echo $pages; ?>" />
</form>
However that form is currently being posted and URLs are typically accessed with GET if that is the case you can do the following:
<form action="search.php?s=<?php echo ($start + $display) ?>&p=<?php echo $pages; ?>" method="post">
<input type="text" name="search" />
<input type="submit" name="submit" value="Search" />
</form>
Though you really should be more clear with your question.

Categories